刚学习OI的萌新求助
查看原帖
刚学习OI的萌新求助
532745
Nangu楼主2025/1/12 09:55
void get_inv(poly &B, poly &A, int n){
    if(n==1) return B[0]=power(A[0], P-2), void();
    get_inv(B, A, n+1>>1);
    int m=n; n=1; while(n<=m<<1) n<<=1;
    rep(i, 1, n-1) tr[i]=(tr[i>>1]>>1)|((i&1)?n>>1:0);
    rep(i, 0, m-1) C[i]=A[i];
    rep(i, m, n-1) C[i]=0;
    B.ntt(n), C.ntt(n);
    rep(i, 0, n-1) B[i]=1ll*(2-1ll*B[i]*C[i]%P+P)*B[i]%P;
    B.ntt(n, 1);
    rep(i, m, n-1) B[i]=0;
}

while(n<=m<<1) n<<=1; 这里为什么要写 n<=m<<1,写成 n<=m就错了QwQ,在线等大佬解答

2025/1/12 09:55
加载中...