1 条题解
-
0
思路
这个题其实是隔板法的变形,区别就是最左和最右两段的空也可以放,所以 m-k头母牛,加上左右两端就是m-k+1个空隙,k头公牛相当于k个隔板,答案就是C(m-k+1,k)。
参考代码
//递推求逆元 void init() { fact[0] = 1; for (int i = 1; i <= 10000; i++) { fact[i] = fact[i - 1] * i % MOD; } finv[0] = finv[1] = inv[1] = 1; for (int i = 2; i <= 10000; i++) { inv[i] = ((-1 * (MOD / i) * inv[MOD % i] % MOD) + MOD) % MOD; finv[i] = finv[i - 1] * inv[i] % MOD; } } //计算组合 long long C(int n, int m) { return fact[n] * finv[m] % MOD * finv[n - m] % MOD; }
- 1
信息
- ID
- 687
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 8
- 标签
- (无)
- 递交数
- 142
- 已通过
- 23
- 上传者