线性求逆元
求1~n在%mod意义下的逆元
mi[1]=1; for (i=2;i<=10000000;i++) { mi[i]=((mod-mod/i)*mi[mod%i])%mod; }
求0!到n!的逆元(求组合数用)
先求n!的逆元,再往回推出全部逆元。
jc[0]=1; for (i=1;i<=10000000;i++) jc[i]=jc[i-1]*i%mod; jc_ni[10000000]=mi(jc[10000000],mod-2); for (i=9999999;i>=0;i--) { jc_ni[i]=jc_ni[i+1]*(i+1)%mod; }