码迷,mamicode.com
首页 > 其他好文 > 详细

Part.4【博弈论】

时间:2015-02-01 23:15:06      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:

---恢复内容开始---

不要问我为什么突然跳到Part.4,我懒得解释。

在蔡大神的论文+讲解和HZW的题库下,自己大概是明白什么是博弈论的皮毛了吧。

 


 

 

先说SG定理吧。

对于游戏中的状态,我们给每个状态定义一个必胜态和必败态。区别在于前者可以通过一次操作到达必败态,但后者无法做到(后者在一次操作后所能到达的状态全部都为必胜态)

接着引进SG函数,每个状态都有一个SG值,这个值由它所能到达的状态的SG值决定。(这里的所能到达的状态指的是经过一次操作能到达的状态,下同)

SG值有以下性质:

  • SG值始终为非负整数。
  • 每个状态的SG都与它能到达的状态的SG值不相同。
  • 在满足上面两个条件的情况下SG值应该尽量小。

我们会发现,SG=0的状态为必败态,SG≠0的即为必胜态。

SG定理:对于一个组合游戏,它状态的SG值即为各个子游戏状态的SG值的异或和(Nim和)。

反胜利条件:上面的必胜和必败都是基于“无法操作者败”这个规则来解释的。若某组合游戏的胜利条件是“无法操作者胜”的话,必胜态必须满足:

  • SG异或和>0且石子数大于1的堆数>0
  • SG异或和=0且石子数大于1的堆数=0

其余的就是必败态了。

Nim阶梯:不懂。。。反正有这种东西就对了。

 

常见的几种公平游戏:

Nim游戏:有N堆石子,每次可从一堆石子中拿走任意数量的石子。

解法:把每堆石子看成子游戏,其SG值等于其石子数。

图上移子游戏:一个有向图上有一个棋子沿着有向边移动。

解法:赤裸裸的SG定理直接用。

树上删边:N棵树,不断删边,每次删边也会把删完无法与根相连的子树删去。

解法:把树上的每个点看成一个组合游戏,它的儿子就是子游戏。

图上删边:上一题的升级版,这次图中可以出现环。

解法:先缩环,奇数边环缩成一条边,偶数边环缩成一个点。接着解法同上题。

NimK游戏:Nim的升级版,每次可从K堆拿走任意数量的石子。

解法:把N堆石子的石子数用二进制表示,统计每一个二进制位上的1的个数,若每一位上1的个数mod(k + 1)全为0,则必败,否则必胜。(证明在此

 


 

 

BZOJ 2281: [SDOI2011]黑白棋

为什么我的第一题都是最丧病的逗QAQ

首先,我们会发现,白棋必须往右移,黑棋必须往左移(最优策略),而且当黑白棋两两紧靠时就是必败态。

这样我们可以把第i个白棋和第i个黑棋之间的空格看成第i个石子堆,问题即可转化成NimK问题。

然后用组合数学算出必败态的方案数,再用总方案数减去必败方案数即可得到必胜方案数。

博弈论+组合数学+DP。。。

我要吐了。。。

BZOJ 2281: Nim

第一眼看到名字,以为真的是赤裸裸的Nim问题,结果还是被骗了。

尼玛这不就是一道数据结构题吗,维护一棵树支持点修改和链查询。。。

逗比的我用了树链剖分,硬是把DFS序的功能忘得一干二净QAQ

BZOJ 2463: [中山市选2009]谁能赢呢?

判断奇偶即可。

证明:用多米诺铺满棋盘,然后自行观察。

POJ 3537: Crosses and Crosses

初始时为状态N,假设我们在第K格中打叉,那么状态N会分裂成状态K-3和状态N-K-2。SG定理搞。

BZOJ 1188: [HNOI2007]分裂游戏

子游戏即每颗豆子。状态分裂+SG定理。

POJ 3710: Christmas Game

图上删边游戏。

但这道题的图比普通图多了一个定义:每个环上只有一个度数大于2的点。所以我们可以利用这个特性来缩环。

POJ 1704: Georgia and Bob

Nim阶梯的应用,两两分组转成Nim游戏。

POJ 3480: John

Nim阶梯的应用,两两分组转成Nim游戏。

POJ 2068: Nim

Nim的变种。SG定理搞。

POJ 2960: S-Nim

Nim的变种。依旧SG定理搞。

POJ 2484: A Funny Game

先考虑链的SG值,再求初始状态的SG值。

POJ 2505: A multiplication game

2-9:必胜

10-18:必败

19-162:必胜

163-324:必败

……

POJ 2425: A Chess Game

图上移子游戏。

POJ 2975: Nim

普通Nim。

POJ 1740: A New Stone Game

施工中……

POJ 2234: Matches Game

普通Nim。

CF 493D: Matches Game

判断棋盘奇偶性即可。

证明:若是奇数则必败,因为对手可以模仿你的动作(沿中轴对称模仿)。若偶数时向右移一步则变成对手的必败态了。

CF 451A: Matches Game

一眼题,看行列的最小值的奇偶性。

 


 

代码我就不发了,谁要的话可以去这里找:【Part 4】Game Theory

Part.4【博弈论】

标签:

原文地址:http://www.cnblogs.com/NanoApe/p/4266216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!