版权声明:本人版权意识薄弱,版权声明什么的... https://blog.csdn.net/Ike940067893/article/details/87283261
-
预备知识:FFT/NTT
-
多项式的逆
给定一个多项式
F(x),请求出一个多项式
G(x),满足
F(x)∗G(x)≡1(mod xn)。
系数对
998244353 取模,
1≤n≤105
首先将多项式的长度拓展至
2的次幂,然后我们要求的是
G(x)∗F(x)≡1 (mod xn)假设已经求出了
H(x)∗F(x)≡1 (mod x⌈2n⌉)又因为有
G(x)∗F(x)≡1 (mod x⌈2n⌉)两式相减有
(G(x)−H(x))∗F(x)≡0 (mod x⌈2n⌉)
G(x)−H(x)≡0 (mod x⌈2n⌉)因为左边得到的多项式前
⌈2n⌉项都是
0,平方前
n项都是
0,所以有
(G(x)−H(x))2≡0 (mod xn)
G2(x)−2G(x)H(x)+H2(x)≡0 (mod xn)两边同时乘以
F(x)
G(x)−2H(x)+H2(x)F(x)≡0 (mod xn)
G(x)≡2H(x)−H2(x)F(x) (mod xn)
我们就得到了递推式,时间复杂度如下
T(n)=T(n/2)+O(nlog2n)=O(nlog2n)
-
多项式开根
给定一个
n−1 次多项式
F(x),求一个在
mod xn 意义下的多项式
G(x),使得
G2(x)≡F(x) (mod xn)(多项式的系数在
mod 998244353 的意义下进行运算,
1≤n≤105)
同样假设求出了
H2(x)≡F(x) (mod x⌈2n⌉)且有
G2(x)≡F(x) (mod x⌈2n⌉)所以
G(x)−H(x)≡0 (mod x⌈2n⌉)
(G(x)−H(x))2≡0 (mod xn)
G2(x)−2G(x)H(x)+H2(x)≡0 (mod xn)
F(x)−2G(x)H(x)+H2(x)≡0 (mod xn)
所以
2G(x)≡H(x)F(x)+H(x) (mod xn)
此处除法转化为乘上多项式的逆,就能递推了,时间复杂度也是
O(nlog2n)
-
多项式求自然对数
给出
n−1 次多项式
F(x),求一个
mod xn 下的多项式
G(x),满足
G(x)≡lnF(x) (mod xn).
多项式的系数在
mod 998244353 的意义下进行运算,
1≤n≤105
G(x)=ln F(x)=∫F(x)F′(x)dx=∫F′(x)F−1(x)dx所以
G=F′F−1,直接多项式求逆+多项式求导积分就行了
求逆复杂度
O(nlog2n),求导积分复杂度
O(n),总时间复杂度仍是
O(nlog2n)
-
多项式exp(待更…)
-
带余除法(待更…)
-
多项式多点求值(待更…)