`
阿尔萨斯
  • 浏览: 4170600 次
社区版块
存档分类
最新评论

hdu 1850 Being a Good Boy in Spring Festival(组合游戏)

 
阅读更多

题目连接:hdu 1850 Being a Good Boy in Spring Festival

题目大意:略。

解题思路:Nim和判断是否必胜。

/*****************
 *
 * sg 为0时,有arr[i] ^ sg == arr[i],所以arr[i] > arr[i] ^ sg;
*****************/

#include <cstdio>
#include <cstring>
#include <algorithm>

using namespace std;
const int maxn = 105;

int n, sg, c, arr[maxn];

int main () {

    while (scanf("%d", &n) == 1 && n) {
        sg = c = 0;
        for (int i = 0; i < n; i++) {
            scanf("%d", &arr[i]);
            sg ^= arr[i];
        }

        for (int i = 0; i < n; i++) {
            int tmp = sg ^ arr[i];
            if (arr[i] > tmp)
                c++;
        }
        printf("%d\n", c);
    }

    return 0;
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics