NIM游戏
NIM游戏是一种ICG游戏。若一个游戏满足:
- 有两名玩家交替行动
- 在游戏进程的任意时刻,可以执行的合法行动与轮到哪名玩家无关
- 不能行动的玩家判负
则该游戏是ICG游戏(公平组合游戏)
ICG游戏是一种有向图游戏。每一个局面为一个节点,合法行动为有向边。
SG函数
-
在有向图游戏中,一个节点的sg值等于: S G ( x ) = m e x ( S G ( y 1 ) , S G ( y 2 ) , ⋯ , S G ( y n ) ) SG(x) = mex(SG(y_1),SG(y_2),\cdots,SG(y_n)) SG(x)=mex(SG(y1),SG(y2),⋯,SG(yn)),其中x为y的父节点。
-
SG定理:n个有向图游戏的SG值等于所有游戏SG值的异或。
Acwing 219可以加深理解上述
求SG函数的方法
- 推荐使用dfs加bool数组求解。使用set方法容易TLE。
- 对于不能记忆化的SG求解,可以使用找规律的方法求解。