看了这篇文章对初入博弈论很有用http://www.wutianqi.com/?p=1081
#include<iostream>
using namespace std;
int a[50];
int main()
{
int n,t,i,flag,cnt;
cin>>t;
while(t--)
{
cin>>n;
flag=0; cnt=0;
for(i=0;i<n;i++)
{
cin>>a[i];
flag=flag^a[i];
if(a[i]>1) cnt++;
}
if(flag!=0)
{
if(cnt>=1) cout<<"John"<<endl;
else cout<<"Brother"<<endl;
}
else
{
if(cnt>=2) cout<<"Brother"<<endl;
else cout<<"John"<<endl;
}
}
return 0;
}