首页 > 其他 > 详细

洛谷 P4705 玩游戏

时间:2018-12-01 11:41:40      阅读:144      评论:0      收藏:0      [点我收藏+]

题目分析

题目要求的是:
\[ \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的生成函数分别除以一下阶乘,再卷积一下即可。

洛谷 P4705 玩游戏

原文:https://www.cnblogs.com/Trrui/p/10048551.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!