排列组合模板

我与影子孤独终老i 提交于 2019-11-28 03:47:02

组合数学模板

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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!