[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\n");
else printf("Brother\n");
}
else
{
if(ans!=0) printf("John\n");
else printf("Brother\n");
}
}
return 0;
}