UVA11806容斥原理,位运算排列,递推组合数
来源:互联网 发布:yes淘宝刷信用 编辑:程序博客网 时间:2024/06/07 06:59
可能是本人太渣了,当时看到这个题的做法感觉太巧妙了,起初自己推公式推了半天没有推出来,
然后就开始看书,书上用容斥原理完美解决了这个问题,同时使用递推公式推出了所有组合数,
然后使用位运算讨论4个集合的选择问题,代码:
#include<iostream>#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<algorithm>#include<cctype>#include<vector>#include<queue>#include<stack>#include<map>#include<set>#include<string>#define LL long longusing namespace std;const int mod=1e6+7;const int MAXN=500+10;int t,m,n,k;int C[MAXN][MAXN];int main(){ memset(C,0,sizeof(C)); C[0][0]=1; for(int i=0;i<=500;i++) { C[i][0]=C[i][i]=1; for(int j=1;j<i;j++) C[i][j]=(C[i-1][j]+C[i-1][j-1])%mod; } cin>>t; for(int kase=1;kase<=t;kase++) { cin>>m>>n>>k; int sum=0; for(int S=0;S<16;S++) { int b=0,r=n,c=m; if(S&1) {r--;b++;} if(S&2) {r--;b++;} if(S&4) {c--;b++;} if(S&8) {c--;b++;} if(b&1) sum=(sum+mod-C[r*c][k])%mod; else sum=(sum+C[r*c][k])%mod; } printf("Case %d: %d\n",kase,sum); } return 0;}
0 0
- UVA11806容斥原理,位运算排列,递推组合数
- 20160331 UVA11806 Cheerleaders(组合数公式+容斥原理)
- UVA11806 容斥原理
- UVA11806: Composite Prime (容斥 & 组合数)
- uva11806 - Cheerleaders 容斥原理
- UVa11806 Cheerleaders(容斥原理)
- NKOJ 2040 (CQOI 2011)放棋子(递推+容斥原理+组合数)
- Uva11806——容斥原理
- UVA11806-Cheerleaders(容斥原理+二进制)
- UVA11806-Cheerleaders(容斥原理+二进制)
- uva11806(容斥原理)拉拉队
- 容斥原理——Uva11806-Cheerleaders
- hdu6143Killer Names(组合递推+容斥原理)
- 相同数不能相邻的排列问题 组合数学-容斥原理
- uva11806(容斥定理)
- UVA11806(容斥)
- Cheerleaders +容斥原理+组合数+UVA
- Lengthening Sticks 组合数+容斥原理
- Android相关书签
- nodejs读取url中格式为数组的参数
- 第三章第10题
- A/B表替1对多关系,要求联合查询B表只提取一条与A记录关联的记录
- nyoj257郁闷的c小加(一)(栈和队列)
- UVA11806容斥原理,位运算排列,递推组合数
- <ARM嵌入式开发学习>我的第一个驱动程序-hello world
- Python中关于with open file as 的用法
- Custom SharePoint Web Template define element in onet.xml
- 完善-- iOS之键盘挡住输入框的解决方法
- HDU1075——What Are You Talking About
- Keepalived 安装与配置
- 关于IF判断的问题(一个有趣的事情)(分支-08. 高速公路超速处罚(15))
- hdu 1024 最大M子段和