常见的求组合数的板子
Posted -ackerman
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了常见的求组合数的板子相关的知识,希望对你有一定的参考价值。
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; }
常用的组合数的公式:
以上是关于常见的求组合数的板子的主要内容,如果未能解决你的问题,请参考以下文章