hdu 4111 Alice and Bob
2013-11-04 21:08
393 查看
组合游戏题;
组合游戏的规则:
1.必败态的所有后继都是必胜态;
2.必胜态最少有一个必败的后继;
这里的必胜态是f[1][0][0][0];
其中f[a][b][c][d]表示有a个1,b个2,c个3,d个4是不是一个必胜态;
可以认为大于3的奇数等同于3,大于4的偶数等同于4.
然后递归求解;
View Code
组合游戏的规则:
1.必败态的所有后继都是必胜态;
2.必胜态最少有一个必败的后继;
这里的必胜态是f[1][0][0][0];
其中f[a][b][c][d]表示有a个1,b个2,c个3,d个4是不是一个必胜态;
可以认为大于3的奇数等同于3,大于4的偶数等同于4.
然后递归求解;
#include <iostream> using namespace std; bool vis[51][51][51][51]; bool f[51][51][51][51]; int F(int a,int b,int c,int d) { if (!vis[a][b][c][d]) { //单堆减小一个的情况 if (a>=1&&!F(a-1,b,c,d)) f[a][b][c][d]=true; if (b>=1&&!F(a+1,b-1,c,d)) f[a][b][c][d]=true; if (c>=1&&!F(a,b+1,c-1,d)) f[a][b][c][d]=true; if (d>=1&&!F(a,b,c+1,d-1)) f[a][b][c][d]=true; //两两合并的情况 if (a>=2&&!F(a-2,b+1,c,d)) f[a][b][c][d]=true; if (b>=2&&!F(a,b-2,c,d+1)) f[a][b][c][d]=true; if (c>=2&&!F(a,b,c-2,d+1)) f[a][b][c][d]=true; if (d>=2&&!F(a,b,c,d-2+1)) f[a][b][c][d]=true; if (a>=1&&b>=1&&!F(a-1,b-1,c+1,d)) f[a][b][c][d]=true; if (a>=1&&c>=1&&!F(a-1,b,c-1,d+1)) f[a][b][c][d]=true; if (a>=1&&d>=1&&!F(a-1,b,c+1,d-1)) f[a][b][c][d]=true; if (b>=1&&c>=1&&!F(a,b-1,c-1+1,d)) f[a][b][c][d]=true; if (b>=1&&d>=1&&!F(a,b-1,c,d-1+1)) f[a][b][c][d]=true; if (c>=1&&d>=1&&!F(a,b,c-1+1,d-1)) f[a][b][c][d]=true; vis[a][b][c][d]=true; } return f[a][b][c][d]; } int main() { int t,ca=1; cin>>t; f[1][0][0][0]=1; while(t--) { int n,a=0,b=0,c=0,d=0; cin>>n; for (int i=0;i<n;i++) { int t; cin>>t; if (t==1) a++; else if (t==2) b++; else if (t%2==1) c++; else d++; } cout<<"Case #"<<ca++<<": "<<(F(a,b,c,d)?"Alice":"Bob")<<endl; } return 0; }
View Code
相关文章推荐
- linux查找文件命令
- ACMICPC 2013 Nanjing Onsite 总结
- 简单小例子学会企业内容管理 IBM CM API开发
- 图像处理-07-图像的轮廓提取-Robert算子
- Java parseInt()方法
- javaI/O零碎
- uva 10900 - So you want to be a 2n-aire?(期望)
- C指针原理(5)-AT&T汇编
- Javascript函数节流
- 网络与服务器编程框架库 acl_3.0.13 发布
- javaweb项目是最常见的http状态码
- Hibernate 里一些常用操作
- qsort 的用法讲述
- 一步一步学android控件(之九) —— ImageButton
- CodeChef November Challenge 2013 » Yet Another Cute Girl
- 理解 bashrc 和 profile【转自wido.me】
- 隐性—显性知识转化技术
- int 和String之间的互转
- Android AutoCompleteTextView
- MySQL常用命令