线性递推
形如
[F_n=sum_{i=1}^kF_{n-i}*a_i
]
通常情况下给出(F_{0ldots k})的值。
矩阵快速幂
适用于(k)比较小,(n)非常大的情况。
复杂度(O(k^3logn))
特征多项式
用于解决常系数齐次线性递推。
这个可以看做矩阵快速幂的一个优化。
设(displaystyle B(x)=x^k-sum_{i=1}^ka_ix^{k-i})。现在要求(F_n)的值。设(G(x)=x^n\% B(x)),则$ displaystyle F_n=sum_{i=0}^kg_i*F_i$。
因为
[x^{2*n}equiv (x^n)^2pmod{B(x)}
]
所以可以用类似于快速幂的方式求(x^n\%B(x))。
复杂度(O(k^2logn))。
分治FFT
可以发现,这个转移也是一个卷积式子。所以我们可以分治。处理区间([l,r])的时候求出(f_{lldots mid})对(f_{mid+1ldots r})的贡献。
复杂度(O(nlog^2n))
多项式求逆
设(A(x)=sum_{i=1}^ka_ix^i),则:
[F=F*A+[x_0]F\
Rightarrow F=frac{[x^0]F}{1-A}
]
复杂度(O(nlogn))