求解所有的变量的所有次幂的每一种的和

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)(补题)

快速幂的求解-java方法(int范围之内)

怎样算次幂啊

51Nod 1013 3的幂的和 快速幂 | 乘法逆元 | 递归求和公式

如何计算一个算法的时间复杂度

编程 求水仙花数