刚学OI的萌新求助简单带余除法
查看原帖
刚学OI的萌新求助简单带余除法
455490
Sharpsmile楼主2023/2/14 11:46

RT

简单多项式带余除法。

样例过不去,但是找不到为什么QAQ

NTT(*f,n) 是将 n=2k1n=2^k-1 次多项式 f 进行快速数论变换

IV(*f,n,*g) 是在 modxn\mod x^{n} 意义下求 f 的逆放进 g 中。

TM(*f,n,*g,m,*p,u=-1) 是将 nn 次多项式 fmm 次多项式 g 相乘得到的结果放进 p 中同时对 xux^u 取模,如果 u=1u=-1 则不取模。

以下是我的带余除法(求大神帮帮QWQ

inline void mo(int *f,int n,int *g,int m,int *p,int *q){
    reverse(f,f+n+1);
    reverse(g,g+m+1);
    IV(g,n-m+1,tmp);
    TM(f,n,tmp,n-m+1,p,n-m+1);
    reverse(p,p+n-m+1);
    for(int i=0;i<=n-m;i++)
        tmp[i]=0;
    reverse(f,f+n+1);
    reverse(g,g+m+1);
    TM(g,m,p,n-m,tmp,m);
    for(int i=0;i<=m-1;i++)
        q[i]=(f[i]-tmp[i]+M)%M;
}
2023/2/14 11:46
加载中...