[数学记录] 博弈论
所谓博弈,就是两个人(算了我编不出来了)
Part 0. 问题
只有公平博弈,不能操作者输。
Part 1. 基础理论
- Bool SG :必败态:后继全是必胜态;必胜态:后继存在必败态。
- 必败态 SG 值 = 0
- 当个游戏 SG 值为后继状态 SG 值的 mex。
- 多个游戏 SG 值为当个游戏的 xor 值。
Part 2. 经典模型
Nim
若干堆石子,每次操作
SG 本身就是对应一堆石子。异或和 = 0 / 意味着先手必败 / 先手必胜。
Joker Nim
还是若干堆石子,但是两个玩家自己也有一堆石子。可以把自己的拿给中间的,也可以把中间的拿给自己的。
还是 Nim。因为一方如果把自己的给中间的,另一方就拿回来,这样另一方只增不减。
Lasker's nim
还是取石子,但是可以分成把一堆变成两份。
一堆:。
找规律可以做到 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
这个是啥来着,哦子游戏,就是多 堆变成子游戏异或起来,然后 SG 值取 mex。找规律。
CF1091H New Year and the Tricolore Recreation(trick)
这个题,考虑怎么设状态,由于横轴无限宽,而中间的不动,因此记录两个段的长度。
然后筛法可以得到合法的取值集合。我们发现其实可以变成 个数的 SG 和。
然后 bitset 怎么怎么优化一下(
CF317D Game with Powers
CF717D Dexterina's Lab
[SDOI2009] E&D
这个就 SG 找规律。(挺难找的)
[HAOI2015] 数组游戏(trick)
trick:看成白棋子的子游戏(每次放入一个白棋子)
感觉和 [HNOI2015]江南乐 相似。
这里我只证明一个结论。
当 , 。
这里不看 mex 了,直接考虑集合相同。
证明:
对 归纳,假设 ,有 S(x) = S(y)$
那么对于 。对于每个 ,考察 的关系。。因为 。
这一步由归纳得,因为 , 。
证完啦
[FJOI2013] 圆形游戏
由于圆形成了一个树形结构,直接树上删边游戏。扫描线什么的就不关我事了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】