HDU 1849 Rabbit and Grass
题目链接:Problem - 1849 (hdu.edu.cn)
大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC男约会,两个人竟然猫在寝食下棋……
说是下棋,其实只是一个简单的小游戏而已,游戏的规则是这样的:
1、棋盘包含1*n个方格,方格从左到右分别编号为0,1,2,…,n-1;
2、m个棋子放在棋盘的方格上,方格可以为空,也可以放多于一个的棋子;
3、双方轮流走棋;
4、每一步可以选择任意一个棋子向左移动到任意的位置(可以多个棋子位于同一个方格),当然,任何棋子不能超出棋盘边界;
5、如果所有的棋子都位于最左边(即编号为0的位置),则游戏结束,并且规定最后走棋的一方为胜者。
对于本题,你不需要考虑n的大小(我们可以假设在初始状态,棋子总是位于棋盘的适当位置)。下面的示意图即为一个1*15的棋盘,共有6个棋子,其中,编号8的位置有两个棋子。
大家知道,虽然偶尔不够浪漫,但是Rabbit和Grass都是冰雪聪明的女生,如果每次都是Rabbit先走棋,请输出最后的结果。
Input
输入数据包含多组测试用例,每个测试用例占二行,首先一行包含一个整数m(0<=m<=1000),表示本测试用例的棋子数目,紧跟着的一行包含m个整数Ki(i=1…m; 0<=Ki<=1000),分别表示m个棋子初始的位置,m=0则结束输入。
Output
如果Rabbit能赢的话,请输出“Rabbit Win!”,否则请输出“Grass Win!”,每个实例的输出占一行。
Sample Input
2
3 5
3
3 5 6
0
Sample Output
Rabbit Win!
Grass Win!
思路:这个就是单纯的nim游戏,也相当与n堆石子任意取,只需要算出num-sum,如果为0,后者赢,其他前者赢
#include<bits/stdc++.h>
using namespace std;int main(){ios::sync_with_stdio(false);int m;while(cin >> m){if(m == 0){break;}int s = 0;int t;for(int i = 0; i < m; i++){cin >> t;s ^= t;}if(s == 0){cout << "Grass Win!" << "\n";}else{cout << "Rabbit Win!" << "\n";}}return 0;
}
HDU 1849 Rabbit and Grass相关推荐
- HDOJ HDU 1849 Rabbit and Grass ACM 1849 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=1849 ...
- hdu 1849 Rabbit and Grass Nim博弈
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1849 题意:游戏的规则是这样的: 棋盘包含1*n个方格,方格从左到右分别编号为0,1,2,-,n-1: ...
- Rabbit and Grass【博弈】
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- HDU1849 Rabbit and Grass【Nim博弈】
Rabbit and Grass Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- Rabbit and Grass --- 组合博弈 GS函数 记录
Problem Description 大学时光是浪漫的,女生是浪漫的,圣诞更是浪漫的,但是Rabbit和Grass这两个大学女生在今年的圣诞节却表现得一点都不浪漫:不去逛商场,不去逛公园,不去和AC ...
- hdu 6828-Little Rabbit‘s Equation
hdu 6828-Little Rabbit's Equation 又忘开 long long了,! #include<bits/stdc++.h> using namespace std ...
- hdu 1849 nim博弈
http://acm.hdu.edu.cn/showproblem.php?pid=1849 Nim博弈 算法分析: Nim游戏模型:有三堆石子,分别含有a.b.c个石子.两人轮流从某一堆中取任意多的 ...
- HDU - 5030 Rabbit's String(后缀数组+二分)
题目链接:点击查看 题目大意:给出一个字符串,现在要求将其分为不大于k个连续的子串,对于每个子串求出字典序最大的子串,现在要求所有子串的最大子串的最大值最小,输出这个最大子串 题目分析:最大值最小,标 ...
- HDU 4777 Rabbit Kingdom 树状数组
分析:找到每一个点的左边离他最近的不互质数,记录下标(L数组),右边一样如此(R数组),预处理 这个过程需要分解质因数O(n*sqrt(n)) 然后离线,按照区间右端点排序 然后扫一遍,对于当前拍好顺 ...
最新文章
- python打印列表元素_python打印列表中指定元素的所有下标
- 阿里达摩院刷新纪录,开放域问答成绩比肩人类水平,超微软、Facebook
- 1、存在如下数列1、1、2、4、7、13、24、44、81、149......现要求该数列第n项的值(n从O开始算)。 	程序运行结果: 	1/2 	输入:4 	输出:7 	输入:9 	输出:149
- 网络配置 rpm yum
- MyEclipse使用总结——MyEclipse文件查找技巧 ctrl+shift+R ctrl+H
- 高德网络定位算法的演进
- python运行不了指令_python不是内部命令或外部命令,也不是可执行程序解决方法...
- 2018java计算机二级考试试题和答案,2018年计算机等级考试二级JAVA习题答案(1)
- 马上就5g时代了,5g时代有什么风口吗?
- 本计算机的英文意思,电脑的英文什么意思最新见解
- JVM 类加载机制详解
- hibernate理解
- HTML5 Web SQL实现简单的增删改查websql使用方法vue2.0使用websql实现浏览器存储
- 【登录界面】vue、element-ui登录界面模板
- 简单神经网络手算笔记
- 【备忘】尚学堂白贺翔java互联网架构师视频教程下载
- IDEA启动tomcat控制台出现中文乱码问题完美解决方案(亲测有效)
- 如何用WinRAR给压缩包设置和取消密码
- 浙江大学计算机考研分数线2018,2018年浙江大学考研复试分数线已公布
- 策略学习(Policy-Based Reinforcement Learning)
热门文章
- AcceptEx函数的示例代码
- Linux下异步IO(libaio)的使用以及性能
- css背景视差_具有JavaScript和CSS转换的廉价视差
- libGDX的启动类和配置
- 日志分析篇---Linux日志分析
- Pytest如何查找用例耗时最长的N个
- Win7/Win8安装我们无法创建新的分区,也找不到现有的分区的解决方法
- 迈向更小的.NET 4-有关客户端配置文件和下载.NET的详细信息
- getWindow().getDecorView().setSystemUiVisibility(...)设置状态栏属性
- 【网络安全培训】无线局域网的安全威胁都有哪些?