翻硬币游戏,纯。。
注意要判重
1 #include <iostream>
2 #include <cstdio>
3 #include <cstring>
4 #include <algorithm>
5 using namespace std;
6
7 int a[105],n;
8
9 int sg(int x){
10 int tmp=x,cnt=0;
11 while(x){
12 if(x&1==1) cnt++;
13 x=(x>>1);
14 }
15 if(cnt%2==1)
16 return 2*tmp;
17 else
18 return 2*tmp+1;
19 }
20
21 int main(){
22 while(scanf("%d",&n)!=EOF){
23 for(int i=0;i<n;i++)
24 scanf("%d",&a[i]);
25 sort(a,a+n);
26 int len=-1; int tmp=-1;
27 for(int i=0;i<n;i++){
28 if(a[i]!=tmp){
29 tmp=a[i];
30 a[++len]=a[i];
31 }
32 }
33 int sum=0;
34 for(int i=0;i<=len;i++)
35 sum^=sg(a[i]);
36 if(sum) printf("No\n");
37 else printf("Yes\n");
38 }
39 return 0;
40 }
时间: 2024-10-21 13:40:44