排列组合模板

组合数学模板

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;
}

猜你喜欢

转载自www.cnblogs.com/basketball/p/11390331.html