void get_C() { for(int i=1;i<=2005;i++) { C[0][i]=C[i][i]=1; for(int j=1;j<i;j++) { C[j][i]=(C[j-1][i-1]+C[j][i-1])%MOD; } } }
组合数,虎爷版
int f[10000+10];LL pf[10000+10]; LL qmod(LL a, LL b) { if (b == 0) return 1; LL r = a % MOD; LL k = 1; while (b > 1){ if ((b & 1)!=0) k = (k * r) % MOD; r = (r * r) % MOD; b >>= 1; } return (r * k) % MOD; } void init(){ f[0]=1; for(int i=1;i<=maxn;i++){ f[i]=(long long)f[i-1]*i%MOD; pf[i]=qmod(f[i],MOD-2); } } int C(int n,int m){ if(n==m||m==0)return 1; return ((long long)f[n]*qmod(f[m],MOD-2)%MOD)*qmod(f[n-m],MOD-2)%MOD; }