组合数学模板
1.组合公式C(n,r)
使用杨辉三角法
c数组定义为全局数组
const int mod=100007;int cmp(int n,int r)
{
for(int i=0;i<=n;i++)
{
c[i][0]=1;
c[i][i]=1;
}
for(int i=2;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
}
}
return c[n][r]
}
知道数据范围,一次求多个
这里n的最大值为10000,r的最大值为100,根据题意自己更改;
void cmp()
{
c[0][0]=1;
for (int i=1; i<=10000; i++)
for (int j=0; j<=100; j++)
c[i][j]=(c[i-1][j-1]+c[i-1][j])%mod;
}