本文共 1082 字,大约阅读时间需要 3 分钟。
多项式运算模板题
#include #include #include #include #include #include #include #include #include #include using namespace std;#define ll long long#define RG register#define MAX 444444const int MOD=998244353;const int Phi=MOD-1;const int gr=3;inline int read(){ RG int x=0,t=1;RG char ch=getchar(); while((ch<'0'||ch>'9')&&ch!='-')ch=getchar(); if(ch=='-')t=-1,ch=getchar(); while(ch<='9'&&ch>='0')x=x*10+ch-48,ch=getchar(); return x*t;}int fpow(int a,int b){ int s=1; while(b){if(b&1)s=1ll*s*a%MOD;a=1ll*a*a%MOD;b>>=1;} return s;}int r[MAX],N,l,M;int Og[MAX];void NTT(int *P,int opt,int n){ for(N=1,l=0;N <<=1)++l; for(RG int i=0;i >1]>>1)|((i&1)<<(l-1)); for(RG int i=0;i >1); for(RG int i=0;i >1); for(RG int i=0;i<=len;++i)C[i]=a[i]; Inv(b,D,len); NTT(C,1,len<<1);NTT(D,1,len<<1); for(RG int i=0;i<(len<<1);++i)D[i]=1ll*C[i]*D[i]%MOD; NTT(D,-1,len<<1); for(RG int i=0;i >1); for(RG int i=0;i
转载于:https://www.cnblogs.com/cjyyb/p/8798367.html