[数学记录] 博弈论

所谓博弈,就是两个人(算了我编不出来了)

Part 0. 问题

只有公平博弈,不能操作者输。

Part 1. 基础理论

  • Bool SG :必败态:后继全是必胜态;必胜态:后继存在必败态。
  • 必败态 SG 值 = 0
  • 当个游戏 SG 值为后继状态 SG 值的 mex。
  • 多个游戏 SG 值为当个游戏的 xor 值。

Part 2. 经典模型

Nim

若干堆石子,每次操作

SG 本身就是对应一堆石子。异或和 = 0 / ≠=0 意味着先手必败 / 先手必胜。

Joker Nim

还是若干堆石子,但是两个玩家自己也有一堆石子。可以把自己的拿给中间的,也可以把中间的拿给自己的。

还是 Nim。因为一方如果把自己的给中间的,另一方就拿回来,这样另一方只增不减。

Lasker's nim

还是取石子,但是可以分成把一堆变成两份。

一堆:f[i]=mex{f[1],,f[i1],f[a]f[ia]}

找规律可以做到 O(1)。

Staircase Nim

每次可以往左边给若干石子。

结论:偶数格子的异或值。

左移奇数格,下一方可以再移动一次。所以奇数格的移动是没有意义的。
而偶数格左移一格到了奇数格相当于丢弃。

Anti-SG

无法操作者 win.

BZOJ1022.

结论:

  • 当所有单个游戏 SG = 0,且所有 SG 异或和 = 0
  • 当所有单个游戏 SG > 0,且存在 SG 异或和 > 0

树上删边游戏

每次删去一条边和一个不包含 rt 的子树。不能操作的人寄。

结论:

叶子节点 SG 值 = 0, 中间节点 SG 值 = xor (所有儿子 SG 值 + 1)

Part 3. 题

CF549C The Game Of Parity

这个题,考虑最后一个人很牛逼。如果轮到他,既有奇数还有偶数。那么他赢了。

那么考虑偶数哥,他希望最后奇数删没了,那么他赢了。所以他的策略就是删完奇数,而奇数哥不会帮他。

奇数哥呢,他要把所有的偶数删完,而且剩下的还得是奇数。。

这两条规则满足了(如果不够删完就是不满足啊),那就最后一个人赢。

CF603C Lieges of Legendre

这个是啥来着,哦子游戏,就是多 k 堆变成子游戏异或起来,然后 SG 值取 mex。找规律。

CF1091H New Year and the Tricolore Recreation(trick)

这个题,考虑怎么设状态,由于横轴无限宽,而中间的不动,因此记录两个段的长度。

然后筛法可以得到合法的取值集合。我们发现其实可以变成 2n 个数的 SG 和。

然后 bitset 怎么怎么优化一下(

CF317D Game with Powers

CF717D Dexterina's Lab

[SDOI2009] E&D

这个就 SG 找规律。(挺难找的)

[HAOI2015] 数组游戏(trick)

trick:看成白棋子的子游戏(每次放入一个白棋子)

感觉和 [HNOI2015]江南乐 相似。

这里我只证明一个结论。

n/x=n/ySG(x)=SG(y)

S(x)={0,SG(2x),SG(2x)xorSG(3x),,SG(2x)xorxorSG(kx)},k=n/x

这里不看 mex 了,直接考虑集合相同。

证明:

n/x 归纳,假设 1k,x,y,n/x=n/y=k,有 S(x) = S(y)$

那么对于 n/v=k+1。对于每个 t2,考察 tx,ty 的关系。SG(tx)=SG(ty)。因为 n/tx=n/x/t=n/y/t=n/yt

这一步由归纳得,因为 t2n/ty=n/txk

证完啦

[FJOI2013] 圆形游戏

由于圆形成了一个树形结构,直接树上删边游戏。扫描线什么的就不关我事了。

[SDOI2016] 硬币游戏

[SDOI2019] 移动金币

[HNOI2007] 分裂游戏

[雅礼集训 2017 Day2] 棋盘游戏

SP11414 COT3 - Combat on a tree

LightOJ1315 Game of Hyper Knights

hdu3980 Paint Chain

posted @   Lates  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示