zoukankan      html  css  js  c++  java
  • 博弈论进阶之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)

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

    [SGleft( x ight) =egin{cases}x-1left( xmod4=0 ight) \ xleft( xmod4=1 lor 2 ight) \ x+1left( xmod4=3 ight) 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

  • 相关阅读:
    前端 -- html
    MySQL索引
    Python操作MySQL
    MySQL表操作进阶
    MySQL表操作基础
    Github使用教程
    Android开发面试题
    MYSQL学习记录
    Java开发从零到现在
    JavaWeb(JSP/Servlet/上传/下载/分页/MVC/三层架构/Ajax)
  • 原文地址:https://www.cnblogs.com/zwfymqz/p/8469862.html
Copyright © 2011-2022 走看看