HDU 1849 Rabbit and Grass(博弈入门)
来源:互联网 发布:有所不行 知和而和 编辑:程序博客网 时间:2024/06/05 03:50
【题目链接】http://acm.hdu.edu.cn/showproblem.php?pid=1849
【解题报告】
题目里所有棋子都在同一行,但我们考虑到所有棋子互相不影响,所以可以假设他们都在不同行。
把每个棋子距离最左端的距离设为他的权值。
那么目标状态(必败态)为权值和为0.
所以我们把题目抽象为
给你n个数,每次可以任意挑一个数,把它减去任意值,直到所有数都变为0.不能继续操作的人失败。
所以这实际上就是一个nim问题。关于nim问题的解决以及解法的正确性证明可以参考相应答案
【参考代码】
#include<iostream>#include<cstdio>#include<cstring>using namespace std;int main(){ int m; while(~scanf("%d",&m) && m ) { int state=0; for( int i=1; i<=m; i++ ) { int num; scanf("%d",&num); state^=num; } if(state)printf("Rabbit Win!\n"); else printf("Grass Win!\n"); } return 0;}
0 0
- HDU 1849 Rabbit and Grass(博弈入门)
- hdu 1849 Rabbit and Grass(Nim博弈入门)
- [HDU](1849)Rabbit and Grass ---Nim博弈(博弈)
- hdu 1849Rabbit and Grass(博弈)
- HDU(1849)Rabbit and Grass(博弈)
- HDU 1849 Rabbit and Grass(nim博弈)
- HDU 1849 Rabbit and Grass 【Nim博弈】
- HDU-1849-Rabbit and Grass【Nim博弈】
- hdu 1849 Rabbit and Grass Nim博弈
- hdu 1849 Rabbit and Grass(尼姆博弈)
- hdu 1849 Rabbit and Grass(nim 博弈)
- HDU 1849 Rabbit and Grass(尼姆博弈)
- hdu 1849 Rabbit and Grass(s-nim博弈)
- hdu 1849 Rabbit and Grass SG定理(简单博弈)
- HDU 1849 Rabbit and Grass【尼姆博弈】
- HDU 1849 Rabbit and Grass 博弈Nim游戏
- HDU 1849-Rabbit and Grass(尼姆博弈)
- HDU 1849-Rabbit and Grass(尼姆博弈)
- C语言复杂类型声明
- spring-boot实现web项目的运行
- 移动测试人员的未来:测试开发技术的融合
- 嵌入式系统支持ramdisk文件系统
- 十进制中正整数N中1的个数(2)
- HDU 1849 Rabbit and Grass(博弈入门)
- UI之事件与手势详解
- golang postgresql数据库驱动
- C语言scanf函数输入时键盘缓冲区\n的问题[经典问题]
- bt协议详解 基础篇(上)
- Golang评估报告
- UI常用控件之UISegmentControl
- JavaScript学习手记事件学习
- HttpWatch网络抓包工具的使用