链接:vj链接
分类:类签到题
题意:一堆可以拆成k和k xor n堆(两者同时得小于n)
题解:完全就是最简单的奇数偶数博弈,因为拆位只能在已有位中拆,所以就是每个数的位数-1相加判奇数偶数。
#include<bits/stdc++.h>
using namespace std;
const int N = 55;
int a[N];
int _ , n ;
int main(){
int T = 0;
for(scanf("%d" , &_) ; _ ; _ --){
scanf("%d" , &n );
int ans = 0;
for(int i = 1;i <= n ;i ++){
int x;
scanf("%d" , &x);
while(x){
if(x % 2 == 1) ans ++;
x /= 2;
}
ans -= 1;
}
if(ans % 2){
printf("Case %d: Yes\n",++T);
}
else{
printf("Case %d: No\n",++T);
}
}
}