组合数模板
暴力法
int C(int a,int b){
int res=1;
for(int i=a,j=1;j<=b;i--,j++){
res=res*i/j;
if(res>n) return res;
}
return res;
}
优化
const int N=1e5+5;
const int Mod=1e9+7;
int f[N],inf[N];
int qpow(int a,int b){
int res=1;
while(b){
if(b&1) res=res*a%Mod;
b>>=1;
a=a*a%Mod;
}
return res;
}
void init(int x){//求逆元
f[0]=inf[0]=1;
for(int i=1;i<x;i++){
f[i]=f[i-1]*i%Mod;
inf[i]=inf[i-1]*qpow(i,Mod-2)%Mod;
}
}
int C(int a,int b){//组合数
return f[a]*inf[a-b]%Mod*inf[b]%Mod;
}
浙公网安备 33010602011771号