HDU 1850 Being a Good Boy in Spring Festival(sg函数)
先暴力出sg函数来,会发现sg(x) = x,然后枚举每一种走法,看看异或结果是否为0。因为temp^temp = 0,所以这样可以直接判断。
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 using namespace std; 6 int n; 7 int p[101]; 8 int main() 9 { 10 int i,temp,ans,num; 11 while(scanf("%d",&n)!=EOF) 12 { 13 ans = 0; 14 if(!n) break; 15 for(i = 1; i <= n; i ++) 16 { 17 scanf("%d",&p[i]); 18 ans ^= p[i]; 19 } 20 num = 0; 21 if(ans == 0) 22 printf("0\n"); 23 else 24 { 25 for(i = 1; i <= n; i ++) 26 { 27 temp = ans; 28 temp ^= p[i]; 29 if(p[i] >= temp) 30 num ++; 31 } 32 printf("%d\n",num); 33 } 34 } 35 return 0; 36 }