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} \]

posted @ 2020-04-10 09:51  Grice  阅读(108)  评论(0编辑  收藏  举报