洛谷题库 P4721【模板】分治FFT
给定数列 g1⋯n,求解满足如下形式的数列 f:f0=1,fi=∑j=0i−1fjgi−j,∀i∈{1,2,⋯,n},对 998244353 取模。
这道题可以通过多项式求逆解决。我们在此不作讨论。
考虑其转移形式,全部都是依赖于前序已求出项的、固定系数的线性转移。则可以考虑CDQ分治。如果你愿意,也可以叫作“分治FFT”。
假设正处理区间 [l,r];令 mid=⌈(l+r)/2⌉,我们已经计算好 fl,⋯,mid。现统一处理左半区间对右半的贡献。
则令考虑的乘积项为 fi,i∈[l,mid],要向 fj,j∈(mid,r] 作贡献。有 fj←gj−ifi。故而对于 i∈[l,mid],其将分别与 gmid+1−l,⋯,r−l,gmid−l,⋯,r−l−1,⋯,g1,⋯,r−mid 作卷积。其二者下标的和即为贡献对象。故而我们构造两个多项式 F(x),G(x),有 [xi]F(x)=fi+l,[xj]G(x)=gj−1,将其二者作卷积,他们对 fj,j∈(mid,r] 的贡献即为 [xj−l−1]F(x)G(x)。
(更多…)