[学习笔记]一个多项式黑科技

引入

  • 给定一个少项式 \(m\) 次多项式 \(A(x)\),求 \(A^k(x)\)\(0\sim n\) 次项

  • 对质数取模,保证 \(A(x)\) 的常数项不为 \(0\)

做法

  • 倍增快速幂是 \(O(n\log k\log 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}=k\sum_{i=0}^n(i+1)a_{i+1}res_{n-i} \]

  • 注意到等号左边只有 \(n-m\le i\le n\) 是有用的,右边只有 \(0\le i<m\) 是有用的,故:

  • \[res_{n+1}=\frac{k\sum_{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_{0\dots n}\) 已知的条件下递推出 \(res_{n+1}\),特殊地 \(res_0=a_0^k\)

  • 复杂度 \(O(nm+\log k)\)

  • UPD:从这个递推式进行归纳,可以得到一个结论:\(a_0=1\) 时,\([x^n]A^k(x)\) 是一个关于 \(k\)\(n\) 次多项式

posted @ 2020-05-01 16:06  epic01  阅读(548)  评论(2编辑  收藏  举报