求解所有的变量的所有次幂的每一种的和
Posted cjoieryl
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求解所有的变量的所有次幂的每一种的和相关的知识,希望对你有一定的参考价值。
标题很丑。。。
问题描述
(n) 个变量 (a_n),求所有的
[s_j=sum_{i=1}^{n}a_i^j, j in [0,m]]
解决
(O(n*m)) 太暴力了
一个比较好的方法
设
[F(x)=Pi_{i=1}^{n}(a_ix+1)]
则
[Ln(F(x))=sum_{i=1}^{n}Ln(a_ix + 1)]
考虑这个 (Ln(a_ix+1)) 是个什么
[Ln'(a_ix+1)=frac{a_i}{a_ix+1}=sum_{j=0}(-1)^ja_i^{j+1}x^j]
等比数列求和可证
那么就有两种方法
方法一
[Ln'(F(x))=sum_{i=1}^{n}Ln'(a_ix + 1)=sum_{i=1}^{n}sum_{j=0}(-1)^ja_i^{j+1}x^j]
就是
[sum_{j=0}(-1)^j(sum_{i=1}^{n}a_i^{j+1})x_j]
那么分治 (FFT) 然后求 (Ln) 再 求导即可
方法二
[Ln'(a_ix+1)=frac{a_i}{a_ix+1}=sum_{j=0}(-1)^ja_i^{j+1}x^j]
把它积分一下
[Ln(a_ix+1)=sum_{j=1}frac{(-1)^{j-1}a_i^{j}}{j}x^{j}]
那么
[Ln(F(x))=sum_{i=1}^{n}sum_{j=1}frac{(-1)^{j-1}a_i^{j}}{j}x^{j}]
即
[Ln(F(x))=sum_{j=1}frac{(-1)^{j-1}}{j}(sum_{i=1}^{n}a_i^j)x^{j}]
那么分治 (FFT) 然后求 (Ln) 即可
以上是关于求解所有的变量的所有次幂的每一种的和的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces Round #739 (Div. 3)(补题)