学习笔记 Multi-Nim
Multi-Nim
有n堆石子,
两个人可以从任意一堆石子中拿任意多个石子(不能不拿)
或把一堆数量不少于2石子分为两堆不为空的石子,
没法拿的人失败。问谁会胜利
分析
我们实质上还是可以把TA分为若干个子问题
可以使用SG定理解释
如果只有操作1 那么就是裸的Nim游戏
操作2就是把一个子游戏分解为两个子游戏
可以使用SG(异或运算)将其作为连接
例如
\(SG(3)=mex\{(0),(1),(2),(1,2)\}\)
SG值分别为\(\{0,1,2,3\}\)
那么\(SG(3)=mex\{0,1,2,3\}=4\)
但是一般来讲的话 直接套结论的博弈论的\(a_i<=10^9\)
怎么办?
打表找规律
前人总结规律如下
\[SG[x]=\begin{cases}
x-1\ \ \ (x\%4==0)\\
x\ \ \ (x\%4==1\ or\ 2)\\
x+1\ \ \ (x\%4==3)\\
\end{cases}
\
\]
Multi-SG
根据上面的游戏我们定义
1.Multi-SG游戏规定 在符合拓扑原则的前提下一个单一游戏的后继可以是多个单一游戏
2.Multi-SG游戏其他规则同一般SG
注意区分后继以及多个单一游戏
对于一个状态来讲
不同的划分方法会有多个不同的后继
而在一个后继当中会有多个独立的游戏
该后继状态SG值即为后继状态中独立游戏的异或和
该状态的SG值即为后继状态的\(mex\)
例题
【luogu3185】 \(or\) 【BZOJ1188】
【luogu3235】 \(or\) 【BZOJ3576】