题目大意: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; }