[洛谷P2197]nim游戏

题目大意:Nim游戏。地上有n堆石子,每人每次可从任意一堆石子里取出任意多石子,不能不取,且每次只能从一堆里取。没石子可取的人输。问是否存在先手必胜的策略。

题解:Nim游戏有一个定理,就是当所有棋子数量的异或和为0时先手必败,否则后手必胜。

卡点:

C++ Code:

#include <cstdio>
using namespace std;
int Tim, n, a, ans;
int main() {
	scanf("%d", &Tim);
	while (Tim--) {
		scanf("%d", &n);
		ans = 0;
		while (n--) {
			scanf("%d", &a);
			ans ^= a;
		}
		if (ans) puts("Yes");
		else puts("No");
	}
	return 0;
}

  

原文地址:https://www.cnblogs.com/Memory-of-winter/p/9355030.html