首页 > 其他 > 详细

组合数求模

时间:2014-07-23 22:15:27      阅读:333      评论:0      收藏:0      [点我收藏+]

适用于mod为素数 o(N)

void init()
{
    int i;
    pp[0] = 1;
    for(i = 1; i <= N-10 ; i++)
    {
        pp[i] = (pp[i-1]*i)%mod;
    }
}

LL fastmod(LL a,LL k)
{
    LL b = 1;
    while(k)
    {
        if(k&1)
        b = a*b%mod;
        a = (a%mod)*(a%mod)%mod;
        k/=2;
    }
    return b;
}

LL calc(int n,int m)
{
    return (pp[n]*fastmod((pp[m]*pp[n-m])%mod,mod-2))%mod)%mod;
}

组合数求模,布布扣,bubuko.com

组合数求模

原文:http://www.cnblogs.com/shangyu/p/3863877.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!