UVa 11806
来源:互联网 发布:网络大电影植入案例 编辑:程序博客网 时间:2024/06/05 21:17
#include<cstdio>#include<algorithm>#include<cstring>#include<iostream>using namespace std;const int inf=1000007;const int maxn=510;int t;int m,n,k;int v[maxn][maxn];int main(){ memset(v,0,sizeof(v)); v[0][0]=1; for(int i=0;i<=maxn-10;i++) { v[i][0]=v[i][i]=1; for(int j=1;j<i;j++) v[i][j]=(v[i-1][j]+v[i-1][j-1])%inf; } int kase=1; scanf("%d",&t); while(t--) { int sum=0;//sum=S-AUBUCUD scanf("%d%d%d",&m,&n,&k); 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+inf-v[r*c][k])%inf;//对应容斥原理当中的奇数个集合为正,偶数个集合为负的原理,由于这里是减去之后的所以是符号相反了 else sum=(sum+v[r*c][k])%inf; } printf("Case %d: %d\n",kase++,sum); } return 0;}就是书本上的代码,但是要把容斥理解透彻才能解出来啊。还有就是v数组的一开始打表还是非常值得借鉴的,这个打表还用到了递推关系。
0 0
- UVa 11806
- uva 11806
- UVa 11806
- 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
- uva 11806 Cheerleaders
- UVA - 11806 Cheerleaders
- UVA 11806 Cheerleaders
- UVa 11806 Cheerleaders
- UVA 11806 Cheerleaders
- UVa 11806 Cheerleaders 拉拉队
- 单元测试 知识小结
- SAS 9.4 SID 更新
- 装饰模式
- C++指针未初始化和编译器优化造成的奇怪的程序崩溃
- 配置Log4j(很详细)
- UVa 11806
- 版本控制 小结
- 研究如何去掉eclipse中 光标 通过某类名的自动提示
- AOP动态代理
- android:process 和多进程访问 SharedPreferences 的坑
- 2016.7.30
- ue4-定时器(废弃)
- Spring + Aop+注解 集成使用 Log4j,实现异常日志记录
- 【学习笔记】小东西