首页 > 技术文章 > hdu 3537 Daizhenyang's Coin 博弈论

xin-hua 2013-08-13 20:52 原文

详见: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 }
View Code

 

 

 

 

推荐阅读