博弈论

有向图游戏

有一个有向图,图上有一个棋子,Alice 和 Bob 轮流移动棋子,不能移动的人算负。

SG 函数

首先,对于有向图上没有后继的点 \(x\)\(\text{SG}(x)=0\).
对于任意一个点 \(x\),设其后继状态为 \(y_1,y_2...y_m\)\(\text{SG}(x)=\text{mex}(\text{SG}(y_1),\text{SG}(y_2)...\text{SG}(y_m))\).
\(\text{mex}(S)\) 表示 \(S\) 集合中最小的没有出现的非负整数。

\(s\) 为有向图的起点,
\(\text{SG}(s)=0\),先手必败,否则先手必胜。
若有 \(n\) 个有向图,每次可以移动任意一个图的棋子:
\(\text{SG}(s_1)\otimes \text{SG}(s_2) \otimes ... \otimes \text{SG}(s_n)=0\),先手必败,否则先手必胜。

Nim 游戏

\(n\) 堆石子,每堆有 \(a_i\) 个,Alice 和 Bob 轮流取任意一堆的任意个石子,不能取的算负。
考虑每堆,首先 \(\text{SG}(0)=0,\text{SG}(i)=\text{mex}(\text{SG}(i-1),...\text{SG}(0))=i\).
则若每堆的 \(\text{SG}(a_i)\) 异或起来为 \(0\),先手必败,否则先手必胜。

posted @ 2023-08-24 16:10  s1monG  阅读(8)  评论(1编辑  收藏  举报