引入
-
给定一个
少项式(m) 次多项式 (A(x)),求 (A^k(x)) 的 (0sim n) 次项 -
对质数取模,保证 (A(x)) 的常数项不为 (0)
做法
-
倍增快速幂是 (O(nlog klog n)) 的
-
下面介绍一种 (O(nm+log k)) 的做法
-
考虑对 (A^k(x)) 求导:
-
[A^k(x)'=kA^{k-1}(x)A'(x) ]
-
[A^k(x)'A(x)=kA^k(x)A'(x) ]
-
考虑等号左右两边的 (n) 次项:
-
[sum_{i=0}^n(i+1)res_{i+1}a_{n-i}=ksum_{i=0}^n(i+1)a_{i+1}res_{n-i} ]
-
注意到等号左边只有 (n-mle ile n) 是有用的,右边只有 (0le i<m) 是有用的,故:
-
[res_{n+1}=frac{ksum_{i=0}^{m-1}(i+1)a_{i+1}res_{n-i}-sum_{i=n-m}^{n-1}(i+1)res_{i+1}a_{n-i}}{(n+1)a_0} ]
-
用上式即可在 (res_{0dots n}) 已知的条件下递推出 (res_{n+1}),特殊地 (res_0=a_0^k)
-
复杂度 (O(nm+log k))
-
UPD:从这个递推式进行归纳,可以得到一个结论:当 (a_0=1) 时,([x^n]A^k(x)) 是一个关于 (k) 的 (n) 次多项式