记录编号 430930 评测结果 AAAAAAAAAAAAAAAAAAAA
题目名称 饥饿游戏 最终得分 100
用户昵称 GravatarHzoi_Ivan 是否通过 通过
代码语言 C++ 运行时间 0.001 s
提交时间 2017-07-30 20:39:03 内存使用 0.00 MiB
显示代码纯文本
  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. #include<algorithm>
  5. #include<cmath>
  6. using namespace std;
  7. int T,n,a[25];
  8. bool work(){
  9. int i,j,k=0;
  10. for(i=1<<30;i;i>>=1){
  11. for(j=k+1;j<=n;j++)
  12. if(a[j]&i) break;
  13. if(j==n+1) continue;
  14. swap(a[++k],a[j]);
  15. for(j=1;j<=n;j++)
  16. if(j!=k&&(a[j]&i)) a[j]^=a[k];
  17. }
  18. return k!=n;//k!=n说明有某堆在过程中被异或为0
  19. }
  20. int gy()
  21. {
  22. freopen("hunger.in","r",stdin);
  23. freopen("hunger.out","w",stdout);
  24. scanf("%d",&T);
  25. while(T--){
  26. scanf("%d",&n);
  27. for(int i=1;i<=n;i++)
  28. scanf("%d",&a[i]);
  29. if(work()) printf("Yes\n");
  30. else printf("No\n");
  31. }
  32. return 0;
  33. }
  34. int ryf=gy();
  35. int main(){;}