对称多项式
从这么一个式子开始说起 \(F(x) = \prod_{i=1}^n (1+a_i x)\)
如果 \(e\) 能够 \(O(n\log n)\), 那这个式子不就可以做到 \(O(n\log n)\) 了?
定义 \(e, p\) 是作用在 \((a_1, a_2,\cdots, a_n)\) 上的函数
可以发现对\(a\)进行任意多次任意交换, 不影响上述两个式子的值, 这符合对称多项式的定义
可以发现 \(F(x)\)是\(p\)的\(OGF\)
我们一开始的那段推导就给出了一个 : 已知 \(e\) 求 \(p\) 的 \(O(n\log n)\) 做法
2017 thupc I Sum
给你 \(a_1\cdots a_n\), 求 \(e_1\cdots e_n\)
参考了一些网上的人的博客以及当时的官方题解, 似乎都是要两个 \(\log\). 凉了...
还是讲一下那题的做法吧, 用到一个已知 \(p\) 求 \(e\) 的 \(O(n\log n)\) 做法
考虑用 \(e_1\to e_{n-1}, p_1\to p_n\) 去表示 \(e_n\)
首先将 \(x^n\) 视作 \(x^{n-1} * x\), 碰运气用 \(e_{n-1} * p_1\), 此时有可能产生形如 \(x^{n-1}y\) 的项, 每种形式恰好一个
然后将 \(x^{n-1}y\) 视作 \(x^{n-2} * xy\), 碰运气用 \(e_{n-2} * p_2\), 此时有可能产生形如 \(x^{n-2}yz\) 的项, 每种形式恰好一个
接着将 \(x^{n-2}yz\) 视作 \(x^{n-3} * xyz\), 碰运用 \(e_{n-3} * p_3\). 依次类推...
特别的, 到最后产生形如 \(a_1a_2\cdots a_n\) 的项时, 就不是每种形式恰好一个了, 而是恰好 \(n\) 个
容斥一下就是 \(e_n = \sum_{i=1}^{n-1} (-1)^{i-1} e_{n-i} p_i + (-1)^{n-1} np_n\)
写好看一点是 \((-1)^{n-1}e_n = \sum_{i=1}^{n-1} ((-1)^{n-i} e_{n-i}) p_i + np_n\)
在 \(i>n\) 时 \(p_i=0\), \(e_i\) 仍然满足上述等式.
令 \(e_0=p_0=0\) 就可以多项式求逆做了.
虽然 \(p\) 和 \(e\) 之间的相互转化都可以 \(O(n\log n)\)
但是求 \(p\) 依赖于 \(e\), 求 \(e\) 又依赖于 \(p\), 我们得先算出其一
\(e\) 在一般情况下比 \(p\) 难求得多, 那么这里我们就只能用分治FFT来求 \(p\) 了
但是 \(e\) 在某些特殊情况下是能做到计算时间比 \(p\) 优的. 如在 \(a_i=i\) 时, 就不难想到伯努利数.
复杂度只与最大幂次有关, 与 \(n\)无关
2017 集训队 多项式求和
\(f_0(x)=1, f_k(x)=\sum_{i=0}^x (ai^2+bi+c)f_{k-1}(i)\)
要求对于 \(n(2e5), m(1e9)\), 求出 \(f_i(m),\forall 0\le i \le n\)
构造多项式 \(g_n(x)\)
这题里面 \(f_0(n)-f_0(n-1) = 0\)
因此有 $$g_n(x) = \frac{g_{n-1}(x)}{1-(an^2+bn+c)x}, g_0(x)=\frac{1}{1-cx}$$
(插个题外话 : \(f_0(n)-f_0(n-1) \neq 0\) 且 \(m\le 1e5\) 时可以考虑分治FFT来补上这些项对答案的贡献)
求出 \(g_m\) 的前 \(n\) 项系数即可, 问题转化为求 \(\prod_{i=1}^{m} 1-(ai^2+bi+c)x\pmod {x^n}\)
用文章最开头的方法去做, 转化为 \(\forall 0\lt j\le n, 求\sum_{i=1}^m (ai^2+bi+c)^j\)
\(a=0\) 时可以直接二项式定理展开, 然后卷积求
\(a\neq 0\) 时类似这么做得到 \(\sum_{k=0}^j \binom j k c^{j-k} \sum_{d=0}^k \binom k d b^{k-d} a^d \sum_{i=1}^m i^{d+k}\)
并不能比较快的求(可能我太菜)
参考集训队论文里的方法:
后者是 \(a=0\) 的情况, 前后卷积一下即可