生成函数小结

求数列$k$次方和:

  给定数列$a$,对于任一$1 \leqslant k \leqslant m$求$\sum_{i=1}^na_i^k$

  考虑其生成函数,则有:$$\begin{align*}F(x)&=\sum_{j=0}^{\infty}\sum_{i=1}^na_i^jx^j\\&=\sum_{i=1}^n\sum_{j=0}^{\infty}(a_ix)^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_ix}{1-a_ix}\\&=n-x\sum_{i=1}^n\ln'(1-a_ix)\\&=n-x\ln'(\prod_{i=1}^n(1-a_ix))\end{align*}$$

  $\prod_{i=1}^n(1-a_ix)$分治FFT即可

  $O(N\log^2N)$

你可能感兴趣的:(生成函数小结)