博弈论
公平组合游戏(Impartial Game)。
- 游戏有两个人参与,二者轮流做出决策,双方均知道游戏的完整信息。
- 任意一个游戏者在某一确定状态可以作出的决策集合只与当前的状态有关,而与游戏者无关。
- 游戏中的同一个状态不可能多次抵达,游戏以玩家无法行动为结束,且游戏一定会在有限步后以非平局结束。
SG函数
一个游戏局面的SG函数为后继局面的SG函数的mex。
多个游戏的组合为SG函数的异或和。
后手必胜当且仅当SG函数值为0
#include <bits/stdc++.h>
#define ct(a) cout<<#a<<'='<<a<<endl;
#define int long long
#define AC return 0;
using namespace std;
signed main() {
//freopen(".in","r",stdin);
//freopen(".out","w",stdout);
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
int t, n;
cin >> t;
while (t --) {
cin >> n;
int ans = 0, l;
for (int i = 1; i <= n; i++) {
cin >> l;
ans ^= l;
}
if (ans == 0) puts("No");
else puts("Yes");
}
AC
}

浙公网安备 33010602011771号