mex运算
(mex)运算是施加于一个集合的运算,表示最小的不属于这个集合的非负整数。
SG函数
对于状态(x)和它的所有(k)个后继状态(y1,y2...yk),定义(SG)函数:
(SG(x)=mex{SG(y1),SG(y2),...,SG(yk)})
如果(SG(x)=0),则对应当前的(x)为一种必败状态
SG定理
对于由(n)个各自独立的游戏组合而成的组合游戏,设它们的起点分别为(S_1,S_2,...,S_n),则有定理:
当且仅当(SG(S_1)) (xor) (SG(S_2)) (xor...xor) (SG(S_n)≠0)时,这个游戏是先手必胜的。
求解方法
(DAG)反向建图,做一遍(TopSort)