您的位置:首页 > 其它

NYOJ 题目888取石子(九)(anti-nim)

2014-09-20 00:18 330 查看


取石子(九)

时间限制:1000 ms  |  内存限制:65535 KB
难度:4

描述

最近TopCoder的Yougth和Hrdv在玩一个游戏,游戏是这样的。

有n堆石子,两个人轮流从其中某一堆中任意取走一定的石子,最后不能取的为赢家,注意: 每次只能从一堆取任意个,可以取完这堆,但不能不取。

假设Yougth先取,输入赢了的人名字、

输入第一行输入n,代表有n组测试数据(n<=10000)

以下每组测试数据包含两行:第一行:包含一个整数m,代表本组测试数据有m(m<=1000)堆石子;

:第二行:包含m个整数Ai(Ai<=10000),分别代表第i堆石子的数量。
输出若Yougth赢输出“Yougth”,否则输出“Hrdv”注意每组结果占一行。。
样例输入
3
2
1 1
3
3 8 11
2
5 10


样例输出
Yougth
Hrdv
Yougth


来源Yougth原创
上传者
TC_杨闯亮

anti-nim博弈,和以往不同,最后不能取的为赢家,先手赢有两种情况:1,全是1,且s=0,2不全是1,s!=0

ac代码

#include<stdio.h>
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n,s=0,m,c=0;
scanf("%d",&n);
m=n;
while(n--)
{
int num;
scanf("%d",&num);
s^=num;
if(num>1)
c++;
}
if(!s&&!c||(s&&c))
printf("Yougth\n");
else
printf("Hrdv\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: