LA 5059

来源:互联网 发布:linux makefile 编译 编辑:程序博客网 时间:2024/04/28 17:24
/*   n对石头,两个人轮流去,每次取走的石头不超过本堆石头的一半   第一感觉,好似和Nim游戏有相似之处,但是不同   把其中的一堆拿出来找规律  (注释部分)    */#include<stdio.h>#include<string.h>const int maxn=100;int vis[maxn];int SG[maxn];long long f(long long x){   return x%2==0?x/2:f(x/2);}int main(){    /*SG[1]=0;    for(int i=2;i<=27;i++)     printf("%2d ",i);     printf("\n");    for(int i=2;i<=27;i++)    {       SG[i]=0;       memset(vis,0,sizeof(vis));       for(int j=1;j*2<=i;j++)         vis[SG[i-j]]=1;              for(int j=0;;j++)       {         if(!vis[j])         {                SG[i]=j;          break;          }              }      printf("%2d ",SG[i]);      }        for(;;);*/    int t;    long long n;    scanf("%d",&t);        while(t--)    {       scanf("%lld",&n);       long long x,sum=0;       for(long long i=1;i<=n;i++)       {          scanf("%lld",&x);          sum^=f(x);                                 }       if(sum)         printf("YES\n");       else         printf("NO\n");                  }             return 0;    }

原创粉丝点击