XSY1591

题意

有标有数字为(1sim 9)的卡片各(a_1,a_2cdots a_9)张,还有标有乘号的卡片(m)张。从中取出(n)张按任意顺序排列,取出两个乘号相邻和乘法在边界上的非法式子,剩下的都是合法式子。求所有合法式子的方案的值的和。两张数字相同的卡片是不同的,两张乘号也是不同的。答案模({10}^9+7)
(nleq 1000,a_ileq {10}^8,mleq{10}^8)

做法

对于((...) imes (...) imes... imes(...)),考虑每个括号内的一个位,然后算系数
(f_{i,j})为前(i)位,放(j)( imes),所有系数和

[f_{i,j}=f_{i-1,j} imes 10+sumlimits_{k=1}^{i-2}f_{k,j-1} ]

(g_{i,j})为前(i)个数字,选了j个代表数字(就是位)的乘积的和

[g_{i,j}=sum_{k=0}^{a_i}g_{i-1,k-j} imes i^k imes inom{j}{k} imes a_i^underline{k} ]

(ans_i)为总共填了(i)( imes)的答案和

[ans_i=g_{9,i+1} imes f_{n,i} imes {(sum a-i-1)}^underline{n-i-(i+1)} imes m^underline{i} ]

原文地址:https://www.cnblogs.com/Grice/p/12671444.html