多项式快速幂

计算${g(x)}^n \mod p$

int powmod(int a,int b){
	int res=1;
	for(;b>0;b>>=1,a=1ll*a*a%mod)if(b&1)res=1ll*res*a%mod;
	return res;
}
void poly_fast(int *a,int b){
	lim=1,bit=0;
	while(lim<=len*2)lim<<=1,bit+=1;
	for(int i=0;i<lim;++i)rev[i]=(rev[i>>1]>>1)|((i&1)<<(bit-1));
	NTT(a,1);
	for(int i=0;i<lim;++i)a[i]=powmod(a[i],b);
	NTT(a,0);
}
上一篇
下一篇