版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hzj1054689699/article/details/85160167
Preface
首先我们需要的前置知识有:
多项式取模可以看这里
余式定理的内容是这样的:
对于多项式F(x),其在x=x0处的点值等于F(x) mod (x-x0)
因为除式是个一次式,那么余式一定是一个常数
Procedure
考虑分治
假设我们要求多项式
F(x)在(x0…xn-1)这n个点的点值
设
Pl,r(x)=i=l∏r(x−xi),Fl,r(x)=F(x)modPl,r(x)
显然
Fi,i(x)=F(xi)
我们知道当
c∣b时,
(amodb)modc=amodc
那么分治的时候,
Fl,mid(x)=Fl,r(x)modPl,mid(x)
先分治FFT预处理出所有区间的P(显然总次数和是n log n)的
然后递归分治做即可
总的复杂度是
O(nlog2n)
Code
https://blog.csdn.net/hzj1054689699/article/details/80050733