XSY1591
题意
有标有数字为\(1\sim 9\)的卡片各\(a_1,a_2\cdots a_9\)张,还有标有乘号的卡片\(m\)张。从中取出\(n\)张按任意顺序排列,取出两个乘号相邻和乘法在边界上的非法式子,剩下的都是合法式子。求所有合法式子的方案的值的和。两张数字相同的卡片是不同的,两张乘号也是不同的。答案模\({10}^9+7\)
\(n\leq 1000,a_i\leq {10}^8,m\leq{10}^8\)
做法
对于\((...)\times (...)\times...\times(...)\),考虑每个括号内的一个位,然后算系数
令\(f_{i,j}\)为前\(i\)位,放\(j\)个\(\times\),所有系数和
\[f_{i,j}=f_{i-1,j}\times 10+\sum\limits_{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}\times i^k\times \binom{j}{k}\times a_i^\underline{k}
\]
令\(ans_i\)为总共填了\(i\)个\(\times\)的答案和
\[ans_i=g_{9,i+1}\times f_{n,i}\times {(\sum a-i-1)}^\underline{n-i-(i+1)}\times m^\underline{i}
\]