拉格朗日插值求特征多项式 + 多项式取模.
k×k 的方阵 M 的特征多项式 f(x)=|xI−M| ,它是个 k 次多项式,首项系数为 1 .
可以随便选 k+1 个 x ,代到多项式里,用高斯消元算出对应的 f(x) .
然后利用拉格朗日插值得到特征多项式 f(x) 的系数.
根据 Cayley−Hamilton 定理, f(M)=0 ,
那么我们给 Mn 加上任意多个 f(M) 都不会影响答案,即 Mn=Mnmodf(M) .
只需计算 Mnmodf(M) ,两者都是关于 M 的多项式,模数不是 NTT 模数,多项式快速幂 + 暴力取模.
最终得到的 Mnmodf(M) 次数显然小于 k ,将 M 代进去暴力算即可.
时间复杂度 O(k4+k2logn) .
1 |
|
Be the first person to leave a comment!