您的位置:首页 > 其它

HDU 4994 Revenge of Nim (博弈)

2014-09-12 21:22 351 查看
题目链接:HDU 4994 Revenge of Nim

题意:两个取石头,分别在N堆里去。只有第一堆取完才能取第二堆,以此类推,最后一个取完的为赢家。

思路:从头开始扫,直到第一个不为1为止,判断现在的主动权在谁手里,谁就是赢家。(这里读者可以自己写几组数据试试。)

AC代码:

#include<stdio.h>
#include<string.h>

int main()
{
	int yaoga;
	int t,i,n;
	int a[1010];

	while(scanf("%d",&t)!=EOF)
	{
		while(t--)
		{
			scanf("%d",&n);
			int count=0;
			bool ok=true;
			for(i=1;i<=n;i++)
			{
				scanf("%d",&a[i]);
				if(a[i]>1) ok=false;
				if(ok) count++;
			}
			if(ok)
			{
				if(count%2==0)
					printf("No\n");
				else
					printf("Yes\n");
			}
			else
			{
				if(count%2)
					printf("No\n");
				else
					printf("Yes\n");
			}
		}
	}
	return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: