HDU2176(Nim博弈)
来源:互联网 发布:万思软件开发有限公司 编辑:程序博客网 时间:2024/06/05 08:30
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2176
题目大意:中文题目
解题思路:非常典型的Nim博弈问题,只是用到了Nim博弈进一步的一个结论。首先求所有数目的异或,得到一个结果k,然后判断k,若k为0,则先手败,若k不为0,则先手胜,这时要输出先手的所有取子方案。求每一个数字Ni和k的异或,结果为p,若p小于Ni,则从该堆中取可以获胜,并且应该取的数目为Ni-p,而这道题目要求输出剩余的数量,则刚好是p,因此输出Ni和p即可。
AC代码:
#include <iostream>#include <cstring>using namespace std;int n[200005];int main(){ int t; int sum=0; while(cin>>t) { if(t==0)break; sum=0; for(int i=0;i<t;i++) { cin>>n[i]; sum = sum^n[i]; } if(sum==0)cout<<"No"<<endl; else { cout<<"Yes"<<endl; for(int i=0;i<t;i++) { if((n[i]^sum)<n[i]) { cout<<n[i]<<" "<<(n[i]^sum)<<endl; } } } memset(n,0,sizeof(n)); } return 0;}
0 0
- HDU2176(Nim博弈)
- poj2975,hdu1850,hdu2176(Nim博弈求方案数)
- hdu2176 取(m堆)石子游戏(nim博弈)
- hdu2176 取(m堆)石子游戏 nim博弈
- nim博弈 hdu2176 取(m堆)石子游戏
- hdu2176取(m堆)石子游戏 ——Nim 博弈
- 【博弈】hdu1850 && hdu2176 (尼姆博弈)
- Nim(Nim博弈变形)
- Misere Nim (Nim博弈)
- poj2975 nim(nim博弈)
- 尼姆博弈 HDU2176
- [POJ](2975)Nim ---Nim博弈(博弈)
- 【POJ2975】Nim (博弈)
- 博弈(一)Nim
- hdu1907(Nim博弈)
- Lightoj1253(博弈+NIM)
- Lightoj1393(博弈+NIM)
- Poj2975(NIM博弈)
- 几种跨域方式总结
- opencv中的cvResize函数,cvSize结构体,IplImage结构体
- Fresco之DraweeHierachy和DraweeController
- leetcode36:valid sudoku
- Git/Github的使用以及与Eclipse的整合
- HDU2176(Nim博弈)
- css等比例分割父级容器(完美三等分)
- ios开发总结之 CAKeyframeAnimation
- myeclipse项目导入到eclipse中缺jar包
- 1006. 换个格式输出整数 (15)
- 博弈论(转)
- Actor模型和CSP模型的区别
- Eclipse上安装GIT插件EGit及使用
- C语言中的atoi函数的实现