Arrange the Numbers-LightOJ - 1095
2018-03-05 21:44
351 查看
题意:给定n个自然数,在重新排列之后,要求前m个数有k个数在原来位置上,问一共有多少种排列
题解:错排
AC代码:
题解:错排
AC代码:
#include<cstring> #include <iostream> #include <cstdio> using namespace std; typedef long long ll; const ll mod = 1000000; int a, m, k; ll c[1010][1010], d[1010]; void init() { memset(c, 0, sizeof(c)); memset(d, 0, sizeof(d)); int i, j; c[0][0] = 1; c[1][0] = c[1][1] = 1; for (i = 2; i < 1010; i++) { c[i][0] = c[i][i] = 1; for (j = 1; j < i; j++) { c[i][j] = (c[i - 1][j - 1] + c[i - 1][j]) % mod; } } d[0] = 1; d[1] = 0; d[2] = 1; for (i = 3; i < 1010; i++) { d[i] = (i - 1) * (d[i - 1] + d[i - 2]) % mod; } } ll comb() { ll ans = 0; int i; for (i = 0; i <= a - m; i++) { ans += c[a - m][i] * d[a - k - i] % mod; ans %= mod; } return c[m][k] * ans % mod; } int main() { int cas, c; init(); cin >> cas; for (c = 1; c <= cas; c++) { cin >> a >> m >> k; printf("Case %d: %lld\n", c, comb()); } return 0; }
相关文章推荐
- LightOJ 1095 Arrange the Numbers-容斥
- LightOJ-1095 Arrange the Numbers
- lightoj 1095 - Arrange the Numbers (错排数)
- LightOJ 1095 Arrange the Numbers(容斥原理)
- lightoj 1095 - Arrange the Numbers 组合数学
- Light OJ 1095 Arrange the Numbers(计数)
- Light OJ 1095 Arrange the Numbers(容斥)
- Light oj 1095 - Arrange the Numbers(错排)
- Lightoj 1095 容斥原理
- UVa 11481 (计数) Arrange the Numbers
- LightOJ 1095 数学
- LightOJ-1095-math(错排)
- Light OJ 1095 Arrange the Numbers (容斥)
- LightOJ-1095-math
- LightOJ 1106 dp
- LightOJ 1060 nth Permutation(组合数--k大字典序)
- 1095.Cars on Campus (30)...to be continued...
- Lightoj1028【计算约数个数】
- LightOJ1020(简单博弈)
- 括号序列 || 动态树分治 bzoj1095【ZJOI2007】Hide 捉迷藏