尼姆博弈

问题描述 :

  有N堆物品,其中第 i 堆有 pi 个物品,每次从一堆中选出若干个物品去掉(但不能为 0 ),两人轮流取物品,谁不能取谁就输了,问什么情况下会先手必胜?

  

代码示例 :

int main() {
    //freopen("in.txt", "r", stdin);
    //freopen("out.txt", "w", stdout);
    int n, x;
    
    while(~scanf("%d", &n)){
        int s = 0;
        for(int i = 1; i <= n; i++){
            scanf("%d", &x);
            s ^= x;
        }
        if (s == 0) puts("No");
        else puts("Yes");
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/ccut-ry/p/8997233.html