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,在线等大佬解答