组合数【模板】
直接求模板:
int Combination(int n, int m)
{
int ans = 1;
for (int i = n; i >= (n - m + 1); --i)
ans *= i;
while (m)
ans /= m--;
return ans;
}
使用递推:
C(n, m) = C(n -1, m - 1) + C(n - 1, m)
long long C[N][N];
void Combination(int maxn)
{
C[0][0] = 1;
for(int i=1;i<=maxn;i++)
{
C[i][0] = 1;
for(int j=1;j<=i;j++)
C[i][j] = (C[i-1][j]+C[i-1][j-1])%MOD;
}
}
Fighting~