多项式求逆板子

建议搭配NTT板子食用~
并且注意,函数结束后有可能需要清空[toap,2*toap)的值,不清空可能会爆

void GetInv(int a[],int ni[],int toap) 
{ 
    int i,now; 
    ni[0]=ksm(a[0],MOD-2); 
    for(now=2;now<=toap;now<<=1){ 
        fill(ni+(now>>1),ni+(now<<1),0); 
        copy(a,a+now,it); 
        fill(it+now,it+(now<<1),0); 
        NTT(ni,now<<1,1); 
        NTT(it,now<<1,1); 
        for(i=0;i<(now<<1);i++) 
            ni[i]=ch(ni[i],sub(2,ch(it[i],ni[i]))); 
        NTT(ni,now<<1,-1); 
    }  
} 

猜你喜欢

转载自blog.csdn.net/includelhc/article/details/80206861