参考资料:《算法竞赛进阶指南》
SG函数:Steins;Gate函数。为0先手必败。反之先手必胜。
mex运算:mex(S) = min
有向图游戏:定义mex运算:
SG(S) = mex(SG(son(S)))
说人话就是所有后继状态的SG值的mex。
公平组合游戏:多个独立游戏,每次选择一个游戏走一步。最后无路可走的人输。SG值为各个子游戏的异或和。
参考资料:。
Bash Game:
n个石子,每个人只能取[1, m]个,不能取者输。此时SG(S) = n % (m + 1)
Wythoff Game:
两堆石子a,b,每个人可以在其中一堆或两堆取相同的任意个。不能取者输。
令t = (1 + 50.5) / 2,若abs(a - b) * t == min(a, b)则先手败,否则先手胜。
Nim Game:
n个石子,每个人可以取任意个,不能取者输。此时SG(S) = n
Moore's Nimk:()
n堆石子,每次从[1, k]个堆中分别取走若干个。不能取者输。
yyb:
还有一种说法:
阶梯博弈:()
k个阶梯(地面为0号),每次选择一个阶梯,移动若干个石子到下一阶梯,不能移动者输。此时等价于只有奇数号阶梯上石子的普通Nim。
以下内容参考。
Anti-SG(反Steins;Gate是不是SERN啊):
感觉慢慢证还是比较好理解,但是据说市面上只有一道题...弃疗了。
Muti-SG:
一次可以把一个子游戏拆分成若干个子游戏(???)直接暴力SG。
Every-SG:
每次要把所有未完的子游戏全部走一步。最后无路可走的人输。
定义step(S)代表S局面你所期望的结束步数。你要让能赢的尽量玩的久,输的尽早结束。
必胜当且仅当max(step)为奇数。
翻硬币游戏:()
对于每个单独的正面朝上的局面SG值,直接手玩找规律。
不平等博弈:去死吧。
。。