首页 > 代码库 > HDU 4994 Revenge of Nim (博弈)

HDU 4994 Revenge of Nim (博弈)

题目链接: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;
}


HDU 4994 Revenge of Nim (博弈)