详见:http://www.cnblogs.com/xin-hua/p/3255985.html 约束条件6
代码如下:

1 #include<iostream> 2 #include<stdio.h> 3 #include<algorithm> 4 #include<iomanip> 5 #include<cmath> 6 #define in(x) scanf("%d",&x) 7 using namespace std; 8 int a[101]; 9 int main(){ 10 int n,i,j,t,ans,num,cnt,k; 11 while(in(n)!=EOF){ 12 if(n==0){ 13 puts("Yes"); 14 continue; 15 } 16 for(i=0;i<n;i++) in(a[i]); 17 sort(a,a+n); 18 j=1; 19 for(i=1;i<n;i++) 20 if(a[i]!=a[i-1]) 21 a[j++]=a[i]; 22 ans=0; 23 for(i=0;i<j;i++){ 24 k=a[i];t=2*k;num=0; 25 while(k){ 26 if(k&1) num++; 27 k>>=1; 28 } 29 if(num&1) ans^=t; 30 else ans^=t+1; 31 } 32 puts(ans?"No":"Yes"); 33 } 34 return 0; 35 }