太强了,这方法除了递归还可以用dp的手法写出1-n所有数的逆元
ll inv[maxn],jc[maxn],jci[maxn],sum[maxn];
void init()
{
inv[0]=jc[0]=jci[0]=1;
inv[1]=jc[1]=jci[1]=1;
for(ll i=2; i<=1000010; i++)
{
inv[i]=(mod-mod/i)*inv[mod%i]%mod;
jc[i]=jc[i-1]*i%mod;
jci[i]=jci[i-1]*inv[i]%mod;
}
}
ll C(ll n,ll m)
{
return jc[n]*jci[m]%mod*jci[n-m]%mod;
}