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 }

 

你可能感兴趣的:(spring)