学习笔记 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\)

例题

【hdu3032】

【luogu3185】 \(or\) 【BZOJ1188】

【luogu3235】 \(or​\) 【BZOJ3576】

【poj2311】

posted @ 2020-10-01 11:36  tcswuzb  阅读(200)  评论(0编辑  收藏  举报