博弈问题博大精深啊 。。。
sg函数 原理证明不做赘述,直接子额怎么用
首先你必须知道P点与N点
简单来说
P点 ——谁从这个点走谁就输 N点——谁从这个点走谁就赢
这两个有大大的关系
只要从必败点(P点)走必然下一步就会走到必胜点 (N点)反之类比一下 只要从必胜点 (N点)走必然下一步就会走到必败点(P点)就是肯定的相互转化
看看这个题 这个题
首先,将大问题分成小问题 ,即把这三堆分成一堆一堆的小问题 然后取xor(^) 就是答案
要计算sg函数需要mex运算 我也不知道是啥 会用就行
mex 运算定义为 对于一个集合 S ,mex(S)表示最小不属于这个集合的最小非负整数
for example :s={0,2, 3 },mex(S)=1;s={1,2,3,555},mex(s)=0;
对于任意状态 x , 定义 SG(x) = mex(S),其中 S 是 x 后继状态的SG函数值的集合 如果sg(x)的后继 sg(a) ,sg(b),sg(c) , mex(sg)={sg(a) ,sg(b),sg(c) };即就类比于PN图 特定的方向等价于限制取多少
详情看这个点击打开链接
做题的时候 一定先明确 能取的范围