基础:
nim模型:a1^a2^a3^...^an==0则sg(G)==0整个游戏后手必胜
公平游戏:1.二位玩家轮流操作;2.每种状态的操作与身份无关;3.不能行动的玩家输
有向图游戏:一个有向无环图有唯一一个棋子作为起点,棋子每次只能沿有向边走一步,无法移动游戏结束,所有公平游戏都会对应一个有向图游戏;
mex运算:mex的作用对象是一个集合S,返回值为不属于S的最小非负整数;
SG函数:对一个状态s,在有向图中有k条有向边(转化结果)
SG(s)=mex{SG(s0),SG(s1),SG(s2)...SG(s k-1)}如果SG(s)==0则后手必胜,否则先手必胜
有向图的总游戏和小游戏:一个有向图游戏G如果可以分成几个有向图游戏G1,G2,G3...GK
则SG(G)=SG(G1)^SG(G2)^...^SG(GK)
证明放在进阶
进阶:
SG函数的真实意义:SG(Gi)对应nim游戏的第i堆石子有SG(Gi)个
SG(0)=0;0是游戏的终点,由于边是有向的,终点不会连到任何点,
所以SG(0)=mex{空集}=0;然后对于所有连到终点的点ai,终点的sg为0,sg(ai)>0;
以此类推,一个数x的sg(x)=k表示对于任意0<=kk<k,x都有一个后继状态y满足sg(y)==kk;
当某个sg(x)==0,那么他能转化到所有y都满足sg(y)>0,必输;
一堆石头有num个,一个状态x的sg(x)=k;对于0<=kk<k的所有kk,x都能转化到;剩余石子为0游戏结束,sg(x)==0游戏结束;完美契合
nim游戏结论的证明:累了,明天更
有向图总游戏和小游戏的结论证明:每一个小游戏就是nim的一堆石子,SG(Gi)为这个游戏的石子数,再通过nim的游戏结论推得
常见解题方法:
待更
练习记录和题解:
updating