#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn=1e3+5;
int SG[maxn];
bool vis[maxn+5];
void Get_SG(int num)
{
memset(vis,0,sizeof(vis));
for(int i=0;i<num;i++)
vis[SG[i]]=1;
for(int i=1;i<=num/3;i++)
for(int j=i;j<=num-i-j;j++)
vis[SG[i]^SG[j]^SG[num-i-j]]=1;
for(int i=0;i<maxn;i++)
if(!vis[i])
{
SG[num]=i;
return;
}
}
void init()
{
memset(SG,0,sizeof(SG));
SG[0]=0;
SG[1]=1;
SG[2]=2;
for(int i=3;i<maxn;i++)
Get_SG(i);
for(int i=0;i<maxn;i++)
if(i!=SG[i])
printf("%d %d\n",i,SG[i]);
}
int main()
{
int t,n,m,p,ans,s;
//init();
scanf("%d",&t);
while(t--&&scanf("%d",&n)!=EOF)
{
for(ans=0;n--&&scanf("%d",&m);)
if(m%8==0)
ans^=m-1;
else if(m%8==7)
ans^=m+1;
else
ans^=m;
if(ans) printf("First player wins.\n");
else printf("Second player wins.\n");
}
return 0;
}
hdu 5795 2016 Multi-University Training Contest 6(SG+打表找规律)
最新推荐文章于 2019-08-09 11:05:27 发布