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; }