博弈论小记

这个标题处理有点丑...

博弈论是好文明喵!

博弈论入门提单

1. 阶梯博弈

讲解

例题 POJ1704

评价:证明简单,特征比较明显,基本是铜/银牌题

2. 斐波那契博弈

讲解

例题 HDU2516

评价:证明困难,但特征十分明显,直接打表找规律

3. 非常规博弈好题

1. M-POJ1740

题意

你和Nanako把糖分成n堆,然后轮流对其进行操作。每次操作时,你可以选择一堆糖,从这堆糖中拿走任意数量的(至少一颗)糖,如果你愿意的话,还可以任意次从这堆糖中拿走任意数量的糖放到任意一堆非空的糖中。最后,没有糖可拿的一方失败

分析

考虑只有两堆糖的情况,如果两堆糖数量相同,则后手必胜;若不同,则先手必胜

推广这个结论到有偶数堆糖,思考当所有的糖堆可以两两配对,数量相同的情况。不论先手如何操作,后手都可以进行对称的操作(堆配对的堆做同样的事情),使得所有的糖堆仍可以两两配对,数量相同。

考虑无法配对时,有结论,先手可以通过一次操作变成可配对的情况。先把糖堆\(sort\)一遍,从最第n堆拿走\(a_n-a_1\)个,使它和第一堆配对,其余相邻配对。因为差分数组非负,所以偶数位差分和小于等于所有差分和。

考虑奇数堆,拿走最大的一堆,其余按相同方式配对

所以,当且仅当可配对时,后手胜

评价

知道结论倒是很好证明,但是怎么才能知道结论呢QAQ

2. Q-CodeForces - 138D

题意

n*m的格子,每个格子有字符'L','R',X',初始可以选择所有格子.
当选了 'L'的格子时,当前格子左下右上这条线上所有点不能选;
当选了 'R'的格子时,当前格子右下左上这条线上所有点不能选;
当选了 'X'的格子时,就是相当于同时选了'L','R';
如果不是最后选的输出'WIN',否则输出'LOSE'

分析

观察发现可以黑白染色,黑白点互不影响

考虑将格子旋转,使得斜变横,扩展整旋转后的图像为矩形,即\((i,j)->(i+j,i-j+m)\),变为长度为\(n+m\)的矩形。多出来的部分是没有影响的

然后可以记搜求SG函数了,记\(sg[x1][y1][x2][y2]\),枚举选该方格中的哪个位置,拆成两个子矩形

评价

不愧是\(*2500\),第二步有点离谱了,还是太菜了
算是一个小\(trick\),知识点++

3. L-POJ3688

题意

比较复杂

分析

先手必胜时,石子堆的个数只能由奇数个牌上的数字组成

转化为状压dp

评价

需要一点灵性

4. Nim游戏的有趣题目

1. D-HihoCoder - 1172

题意

有一行n个硬币,有的正面朝上,Alice和Bob每次选择一个正面朝上的硬币翻转,同时可以选择该硬币左边一个硬币翻转,无法行动的一方输,给出初始情况,判断结果。

分析

将正面朝上的位置看做代取的石子,翻转左边\(i\)位置的硬币则视作剩下\(i\)个,可以发现两个模型的\(sg\)函数是一样的

评价

简单但还是很妙妙的

2. P-POJ2315

题意

每次最多拿m次的Nim游戏

分析

将石子数化为二进制后在m进制下异或(即不进位加法)

评价

可以扩展到任意最多m次操作的游戏,把SG函数也在m进制下异或

5. SG函数的应用

1. 水题喵

E F I......

2. 获胜条件不同

当获胜条件为对方在任一子游戏失败时,sg函数无法从必败态转移

Gym 101908B

posted @ 2023-12-08 16:58  Kur0n1ko  阅读(52)  评论(0)    收藏  举报