-1.ICG
公平游戏,每个状态都是先手必胜或先手必败。#
∗
(
@
*(@
∗(@&(%&$((省略一堆定义)
0.SG 函数
SG 函数表示对当前局面的评估,
S
G
(
S
)
=
m
e
x
(
S
G
(
S
′
)
)
S
′
∈
n
x
t
(
S
)
SG(S)=mex(SG(S'))S'\in nxt(S)
SG(S)=mex(SG(S′))S′∈nxt(S),
n
x
t
(
S
)
nxt(S)
nxt(S) 表示当前局面的后继局面的集合。
1.nim游戏:
万 恶 之 源
n n n 堆石头,每堆 a i a_i ai 个,每次选一堆取任意个,没得取就GG了。
结论1:单一 nim 游戏(即 n = 1 n=1 n=1), x x x 表示当前局面所剩下的石头, S G ( x ) = x SG(x)=x SG(x)=x。
结论2:当且仅当 SG(a_1)^ SG(a_2) ^ SG(a_3)…^SG(a_n) = 0 时,先手必败,否则先手必胜。
结论 3:任何 ICG 模型都可以转化为和其 S G SG SG 值相等的若干个 nim 游戏。
扩展 1:每个人最多选 k k k 个。结论:将所有 a i a_i ai 对 k + 1 k+1 k+1 取模。
扩展 2:
4.一些 SG 函数
扩展 1:两队人(每队各
n
n
n 人)两两火并分别进行 ICG 游戏,最后一轮哪队赢了哪队就赢了。假定都是第一队人先行动,求哪队必胜。
打牌,必败的拖得竟可能快,必胜的竟可能慢。
3.无向图删边游戏
待填坑。
114514.
k
k
k 堆 NIM 游戏
NIM游戏,但是每次允许取至少
1
1
1 最多
k
k
k 堆。求先手是否必胜。
结论:所有游戏异或,若二进制位上恰好有 k + 1 k+1 k+1 倍数个 1 1 1 先手就寄了。