这里有两段几乎一致的代码:
void LN(ll *f,ll *g,ll n){
memset(b,0,sizeof(b));
dev(f,b,n);INV(f,a,n);
init(2*n);NTT(a,1);NTT(b,1);
for(int i=0;i<limit;i++)a[i]=a[i]*b[i]%mod;
NTT(a,-1);invdev(a,g,n);
}
这一份AC
void LN(ll *f,ll *g,ll n){
memset(c,0,sizeof(c));
dev(f,c,n);INV(f,a,n);
init(2*n);NTT(a,1);NTT(c,1);
for(int i=0;i<limit;i++)a[i]=a[i]*c[i]%mod;
NTT(a,-1);invdev(a,g,n);
}
这一份WA。
两份代码只有数组名a、c上的差别,a、c均为全局数组,下面那份代码出错的原因是啥?