洛谷 P4705 玩游戏
题目分析
题目要求的是:
\[\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x(x\in [1,T])
\]
利用二项式定理化式子,
\[\begin{aligned}
&\sum_{i=1}^n\sum_{j=1}^m(a_i+b_j)^x\\
=&\sum_{i=1}^n\sum_{j=1}^m\sum_{k=0}^x\binom{x}{k}a_i^kb_j^{x-k}\\
=&x!\sum_{i=1}^n\sum_{j=1}^m\sum_{k=0}^x\frac{a_i^k}{k!}\frac{b_j^{x-k}}{(x-k)!}\\
=&x!\sum_{k=0}^x\frac{\sum_{i=1}^na_i^k}{k!}\frac{\sum_{j=1}^mb_j^{x-k}}{(x-k)!}
\end{aligned}
\]
发现上面是一个卷积的形式。现在需要我们能快速求出\(\sum\limits_{i=1}^na_i^k\)。
构造\(\sum\limits_{i=1}^na_i^k\)的生成函数:
\[\begin{aligned}
A(i)&=\sum_ja_i^jx^j\\
F(x)&=\sum_{i=1}^nA(i)
\end{aligned}
\]
\(F\)函数的每一项即为\(\sum\limits_{i=1}^na_i^k\)。
化一下式子
\[\begin{aligned}
F(x)&=\sum_{i=1}^n\sum_{j}a_i^jx^j\\
&=\sum_{i=1}^n\frac{1}{1-a_ix}\\
&=\sum_{i=1}^n1+\frac{a_ix}{1-a_ix}\\
&=n-x\sum_{i=1}^n\frac{-a_i}{1-a_ix}\\
&=n-x\sum_{i=1}^n\left[\ln(1-a_ix)\right]'\\
&=n-x\left[\sum_{i=1}^n\ln(1-a_ix)\right]'\\
&=n-x\left\{\ln\left[\prod_{i=1}^n(1-a_ix)\right]\right\}'\\
\end{aligned}
\]
\(\prod_{i=1}^n(1-a_ix)\)可以用分治FFT\(O(nlog^2n)\)算出。
那么再求ln,求导,乘上x,取负,加上常数项就能得到\(F\)了。
最后把a,b的生成函数分别除以一下阶乘,再卷积一下即可。