码迷,mamicode.com
首页 > 其他好文 > 详细

常见的求组合数的板子

时间:2020-01-09 01:20:54      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:width   快速幂   mic   --   int   i++   bsp   优化   ima   

 1 LL C[3010][3010];
 2 
 3 void init() {
 4     C[0][0] = 1;
 5     for(int i = 1; i < 3010; i++) {
 6         C[i][0] = 1;
 7         for(int j = 1; j <= i; j++) {
 8             C[i][j] = (C[i - 1][j] + C[i - 1][j - 1]) % MOD;
 9         }
10     }
11 }

 

费马小定理加快速幂进行优化求组合数

 

LL da[MAXN];//G++ long long
void init()
{
    int i;
    da[0]=1;
    da[1]=1;
    for(i=2;i<MAXN;i++)
        da[i]=i*da[i-1]%MOD;
}
LL quickmod(LL a,LL b)
{
    LL ans=1;
    while(b)
    {
        if(b&1)
        {
            ans=(ans*a)%MOD;
            b--;
        }
        b/=2;
        a=((a%MOD)*(a%MOD))%MOD;
    }
    return ans;
}
LL C(LL a, LL b)
{
    return (da[a]%MOD)*(quickmod(da[b]*da[a-b]%MOD,MOD-2))%MOD;
}

 

常用的组合数的公式:

 

技术图片

常见的求组合数的板子

标签:width   快速幂   mic   --   int   i++   bsp   优化   ima   

原文地址:https://www.cnblogs.com/-Ackerman/p/12169073.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!