UVA 11806(B)——Cheerleaders 容斥原理 离散数学列举所有情况
来源:互联网 发布:加长棍刀在淘宝叫什么 编辑:程序博客网 时间:2024/06/07 07:23
题目链接:点击打开链接
题目大意:输入m,n,k,在m行n列的矩阵中放k名啦啦队员,要求四条边框每一个至少都要有一名啦啦队员,问有多少中放法
解题思路:直接放的话会很麻烦,所以可以从它的反方向去考虑问题,求算出四条边上没有放满啦啦队员的情况,用sum减去就可以了
运用到了容斥原理(包含排斥原理)对于4条边没有啦啦队员的情况,一共有15种情况可以用离散数学的极大项,极小项那样的思路来处理,用位运算来做比较
离散数学真的很强大
补充:组合数的递推公式: C[i] [j] = C[i-1] [j-1] + C[i-1] [j] 从i中选择j个元素(特殊元素的想法,假设存在一个特殊元素,选择这个特殊元素和不选择这个特殊元素)
代码:
#include<iostream>#include<cstdio>#include<cstring>#define mod 1000007using namespace std;int C[510][510]; // 从i,个空位置中选取j个空位置放啦啦队员void init(){ memset(C, 0, sizeof(C)); for(int i = 0; i < 510; i++) C[i][0] = 1; for(int i = 1; i < 510; i++) for(int j = 0; j < 510; j++) C[i][j] = (C[i-1][j] + C[i-1][j-1]) % mod;}int main(){ init(); int T; cin >> T; int m, n, k; for(int kase = 1; kase <= T; kase++) { scanf("%d %d %d", &m, &n, &k); int sum = C[m*n][k] % mod; for(int i = 1; i <= 15; i++) { int b = 0; int mm = m, nn = n; // 一个位置为1,其余三个位置为0,总共有4种情况,离散数学的妙用 if(i&1){mm--; b++;} if(i&2){mm--, b++;} if(i&4){nn--, b++;} if(i&8){nn--, b++;} if(b%2 == 0) sum = (sum + C[mm*nn][k])%mod; else sum = (sum + mod - C[mm*nn][k])%mod; } cout << "Case " << kase << ": " << sum << endl; } return 0;}
阅读全文
0 0
- UVA 11806(B)——Cheerleaders 容斥原理 离散数学列举所有情况
- UVA 11806 Cheerleaders(容斥原理)
- UVA 11806 - Cheerleaders (容斥原理)
- UVa 11806 Cheerleaders / 容斥原理
- uva 11806 - Cheerleaders(容斥原理)
- UVA 11806 Cheerleaders (容斥原理)
- uva 11806 Cheerleaders (容斥原理)
- uva 11806 Cheerleaders【容斥原理】
- uva 11806 - Cheerleaders(容斥原理+二进制)
- uva 11806 Cheerleaders 容斥原理
- CheerLeaders Uva 11806(容斥原理)
- UVA 11806 Cheerleaders(容斥原理)(组合数)
- UVa 11806 Cheerleaders 解题报告(容斥原理)
- UVA 11806 - Cheerleaders(数论+容斥原理)
- UVa 11806 - Cheerleaders (组合数学 容斥原理)
- UVA 11806 Cheerleaders (容斥原理+二进制枚举)
- UVA 11806 Cheerleaders(容斥原理 + 组合数)
- uva 11806 Cheerleaders(容斥)
- linux route命令详解
- Jenkins + Gerrit + Git
- Event事件对象之表单事件
- FZU 2150 Fire Game(多起点bfs)
- 调用天气api实现查询各城市天气
- UVA 11806(B)——Cheerleaders 容斥原理 离散数学列举所有情况
- Mongodb从0到1系列七: 分片
- 【POJ2096】Collecting Bugs
- 线程的优先级别
- Asp.Net MVC webAPI Token based authentication
- Vue中router-link介绍
- [科普]如何防止跨站点脚本攻击
- 百度地图反选
- 数据库常用的SQL语句