ABC231G Balls in Boxes 题解

发布时间 2023-10-02 20:47:23作者: yanghanyv

考虑 DP,设 \(f_{i,j}\) 表示在前 \(i\) 个盒子放 \(j\) 次球的所有方案得分之和,得到转移式:

\[f_{i,j}=\sum\limits_{k=0}^{j}{j \choose k}f_{i-1,k}(a_i+j-k)\\ \]

发现这个转移式简直是为 EGF 量身定制,于是写成 EGF 的形式:

\[\hat{F_i}(x)=\hat{F_{i-1}}(x)\hat{G_i}(x)\\ \hat{F_0}(x)=\sum\limits_{n=0}^{\infin}[n=0]\frac{x^n}{n!}=1\\ \hat{G_i}(x)=\sum\limits_{n=0}^{\infin}(n+a_i)\frac{x^n}{n!}\\ \]

此时 \(\frac{[x^m]\hat{F_n}(x)}{n^m}\) 即为所求。

进行化简,考虑 \(\hat{G_i}(x)\) 的封闭形式:

\[\begin{aligned} \hat{G_i}(x) &=\sum\limits_{n=0}^{\infin}(n+a_i)\frac{x^n}{n!}\\ &=\sum\limits_{n=1}^{\infin}\frac{x^n}{(n-1)!}+\sum\limits_{n=0}^{\infin}a_i\frac{x^n}{(n-1)!}\\ &=x\mathrm{e}^x+a_i\mathrm{e}^x\\ &=(x+a_i)\mathrm{e}^x\\ \end{aligned} \]

于是可以得到:

\[\hat{F_n}(x)=\prod\limits_{i=1}^{n}\hat{G_i}(x)=\mathrm{e}^{nx}\prod\limits_{i=1}^{n}(x+a_i)\\ \]

暴力算出 \(\prod\limits_{i=1}^{n}(x+a_i)\) 的展开式(一个 \(n\) 次多项式),设为 \(\sum\limits_{i=0}^{n}c_ix^i\),则有:

\[\begin{aligned} \hat{F_n}(x) &=\mathrm{e}^{nx}\sum\limits_{i=0}^{n}c_ix^i\\ &=\sum\limits_{i=0}^{n}c_ix^i\sum\limits_{j=0}^{\infin}n^j\frac{x^j}{j!}\\ &=\sum\limits_{i=0}^{n}\sum\limits_{j=0}^{\infin}\frac{c_in^j(i+j)!}{j!}\frac{x^{i+j}}{(i+j)!}\\ &=\sum\limits_{i=0}^{\infin}\sum\limits_{j=0}^{n}\frac{c_jn^{i-j}i!}{(i-j)!}\frac{x^i}{i!}\\ \end{aligned} \]

最后得到答案:

\[ans=\frac{[x^m]\hat{F_{n}}(x)}{n^m}=\sum\limits_{i=0}^{n}\frac{c_i\prod\limits_{j=m-i+1}^{m}j}{n^i}\\ \]

时间复杂度 \(\Omicron(n^2)\)

Bonus:

如果使用分治 FFT/NTT 计算 \(\prod\limits_{i=1}^{n}(x+a_i)\),可以将复杂度降至 \(\Omicron(n\log^2{n})\)