首页 > 其他 > 详细

多项式合集

时间:2019-03-25 13:31:20      阅读:161      评论:0      收藏:0      [点我收藏+]

多项式乘法

FFT

这里

NTT

可以求出两个多项式相乘结果系数对任意NTT模数(可以表示为\(a\times2^b+1\)形式的质数)取模的结果。

其实只要把FFT里的单位副根变为该模数的原根就好了。

常见的NTT模数为998244353,原根为3。

code:

void NTT(vector<int>&f,ci l,ci len,ci op){
    if(len&1)return;
    for(int i=l;i<l+len;++i)cpy[i]=f[i];
    int nw=l-1,ln=len>>1;
    for(int i=l;i<l+ln;++i)f[i]=cpy[++nw],f[i+ln]=cpy[++nw];
    NTT(f,l,ln,op),NTT(f,l+ln,ln,op);
    int rt=POW(g,(mod-1)/len),t;
    op?rt=POW(rt,mod-2):0;
    nw=1;
    for(int i=l;i<l+len;++i)cpy[i]=f[i];
    for(int i=l;i<l+ln;++i,nw=1ll*nw*rt%mod)t=1ll*nw*cpy[i+ln]%mod,f[i]=(cpy[i]+t)%mod,f[i+ln]=(cpy[i]-t+mod)%mod;
}

多项式求逆

这里

剩下的待更新...

多项式合集

原文:https://www.cnblogs.com/xryjr233/p/10592862.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!