[SHOI2008]小约翰的游戏John

链接:戳我

反Nim游戏模板题,不会Nim的可以去网上看看,或者看看蒟蒻的这篇OI数学 简单学习笔记,在下面博弈论部分有介绍与证明。

代码如下:

#include<iostream>
#include<cstdio>
#include<cstring>
#define MAXN 100010
using namespace std;
int t,n;
int a[MAXN];
int main()
{
	scanf("%d",&t);
	while(t--)
	{
		scanf("%d",&n);
		int ans=0;
		bool flag=true;
		for(int i=1;i<=n;i++)
		{
			scanf("%d",&a[i]),ans^=a[i];
			if(a[i]!=1) flag=false;
		}
		if(flag==true)
		{
			if(ans==0) printf("John
");
			else printf("Brother
");
		}
		else 
		{
			if(ans!=0) printf("John
");
			else printf("Brother
");
		}
	}
	
	return 0;
}
原文地址:https://www.cnblogs.com/fengxunling/p/10260534.html