总结一下SG题目:1.套模板 2.找规律 3.AC
下面是蒟蒻的代码(屏蔽部分是第一步和第二步)
#include<cstdio>
#include<cstring>
int T,n;
int p[205][205];
int get_sg(int x,int y)
{
/*bool o[1000];
if (x>y){int tt=y;y=x;x=tt;}
if (p[x][y]!=-1) return p[x][y];
if (x+y<=2) return 0;//必败
memset(o,false,sizeof(o));
if (y>1)
{
for (int u=1;u<=y/2;u++)
o[get_sg(u,y-u)]=true;
}
if (x>1)
{
for (int u=1;u<=x/2;u++)
o[get_sg(u,x-u)]=true;
}
for (int i=0;;i++)
if (o[i]==false)
{
p[x][y]=i;
return i;
}*/
long long a=2;
for (int u=0;;u++)
{
if ((x-1)%a<a/2&&(y-1)%a<a/2) return u;
a*=2;
}
}
int main()
{
/*
for (int u=1;u<=200;u++)
{
for (int i=u+1;i<=200;i++)
printf("%d ",get_sg(u,i));
printf("\n");
}*/memset(p,-1,sizeof(p));
scanf("%d",&T);
while (T--)
{
int ans=0;
scanf("%d",&n);
for (int u=1;u<=n/2;u++)
{
int x,y;
scanf("%d%d",&x,&y);
ans=ans^get_sg(x,y);
}
if (ans==0) printf("NO\n");
else printf("YES\n");
}
return 0;
}
2016年的最后一篇博客了吧,新年快乐