博弈论进阶之Multi-SG

Posted 自为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了博弈论进阶之Multi-SG相关的知识,希望对你有一定的参考价值。

Multi-Nim

从最简单的Nim模型开始

它的定义是这样的

\\(n\\)堆石子,两个人可以从任意一堆石子中拿任意多个石子(不能不拿)或把一堆数量不少于\\(2\\)石子分为两堆不为空的石子,没法拿的人失败。问谁会胜利

博弈分析

这个问题的本质还是Nim游戏,可以利用SG定理来解释

通过观察不难不发现,操作一与普通的Nim游戏等价

操作二实际上是将一个游戏分解为两个游戏,根据SG定理,我们可以通过异或运算把两个游戏连接到一起,作为一个后继状态

煮个栗子

SG(3)的后继状态有\\(\\{ (0),(1),(2),(1,2) \\}\\)他们的SG值分别为\\(\\{ 0,1,2,3 \\}\\),因此\\(SG(3)=mex\\{ 0,1,2,3 \\}=4\\)

另外这种游戏还有一个非常神奇的性质

\\[SG\\left( x\\right) =\\begin{cases}x-1\\left( x\\mod4=0\\right) \\\\ x\\left( x\\mod4=1 \\lor 2\\right) \\\\ x+1\\left( x\\mod4=3\\right) \\end{cases} \\]

然后把这个结论背过就好啦233

Multi-SG

根据上面的游戏,我们定义Multi-SG游戏

  • Multi-SG 游戏规定,在符合拓扑原则的前提下,一个单一游戏的后继可以为多个单一游戏
  • Multi-SG其他规则与SG游戏相同。

注意在这里要分清楚后继多个单一游戏

对于一个状态来说,不同的划分方法会产生多个不同的后继,而在一个后继中可能含有多个独立的游戏

一个后继状态的SG值即为后继状态中独立游戏的异或和

该状态的SG值即为后继状态的SG值中未出现过的最小值

例题

难度跨度好大啊QWQ。。

直接放题解吧

HDU 3032

POJ 2311

BZOJ 2940

BZOJ 1188

洛谷 3235

以上是关于博弈论进阶之Multi-SG的主要内容,如果未能解决你的问题,请参考以下文章

博弈论进阶之Anti-SG游戏与SJ定理

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

HDU 3032 multi-sg 打表找规律

POJ 2311 Cutting Game [Multi-SG?]

大数据攻城狮之进阶技能-Github的使用

HDU 3032 Nim or not Nim? [Multi-SG]