Nim or not Nim? HDU - 3032

原题链接
考察:博弈论
看了其他题解都是不难发现...,果然是我太弱了(.)
思路:
  这题不是打表胜负态,而是打表sg函数.可以发现4个一循环.

Code

#include <iostream> 
using namespace std;
int n;
int main()
{
	int T;
	scanf("%d",&T);
	while(T--)
	{
		scanf("%d",&n);
		int res = 0,x;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&x);
			if(x%4==0) res^=x-1;
			else if(x%4==3) res^=x+1;
			else res^=x;
		}
		if(res) puts("Alice") ;
		else puts("Bob");
	}
	return 0;
}
posted @ 2021-05-24 13:05  acmloser  阅读(34)  评论(0编辑  收藏  举报