博弈论题单
AGC056D
如果 Bob 先手呢?
我们发现,Bob 如果有先手优势,可以通过如下方法逼 Alice 选出理论下界:
把 \(2k\) 个数先排序,再按顺序两两分组 \((a_1, a_2), (a_3, a_4), \dots, (a_{2k - 1}, a_{2k})\)。每次选没有人选过的数中的最大值。
这样无论 Alice 怎么选,最大只能选出 \(\sum_{i = 1}^{2k} a_i[i \bmod 2 = 1]\)。
同理,Bob 也可以逼 Alice 选出理论下界。如果选出上界、选出下界两种极端情况中有一种不合法,那么 Alice 就无力回天了。否则 Alice 随便赢,设这样的 \(2k\) 个数为优势数组。
Alice 先手的最优策略,我们通过刚才的分析可见一斑。假设 Alice 先选了一个元素,那么还剩 \(n - 1\) 个元素。假如我们能在 \(n - 1\) 个元素中选出 \(n - 2\) 个元素形成优势数组,那么 Alice 稳赢,因为只需做到每一组 \((a_{2i - 1}, a_{2i})\) 中恰好选出一个数就能处在上下界之间了。
如果选不出来呢?Bob 就可以像刚才一样逼上下界。举个例子:现在还剩 \(n - 1\) 个数,从小到大排序 \(b_1, b_2, \dots, b_{n - 1}\),不管 \(b_{n - 1}\),把剩下的数两两分组,此时 Bob 先手,如果 Alice 打死不选 \(b_{n - 1}\),那么 Bob 可以像上文一样逼上界;如果 Alice 选了,那么这个结果只会比上界还要大(\(b_{n - 1}\) 是最大数),而因为没有优势数组,这个上界不合法,Alice 就输了。
P2599 [ZJOI2009] 取石子游戏
对于 \([l, r]\),当 \(a_{[l, r)}\) 确定时,至多只有一个 \(a_r\) 使得 \([l, r]\) 必败。这是因为比最小必败数量大的状态可以一步转移到最小必败态上,从而一定必胜。\(a_l\) 有同样性质。
于是设 \(ln_{[l, r]}\) 和 \(rn_{[l, r]}\) 表示这个最小值即可。分类讨论转移,复杂度 \(O(n^2)\)。
P7387 「EZEC-6」象棋
只有 \(|R| = |B|\) 和 \(|R| = |B| - 1\) 的情况需要讨论。
对前者,能否争胜或者保平取决于能否达到 1010...0101,换位思考得必须一步达到,否则会被对手破坏;
对后者,这里的 \(R\) 相当于刚才的 \(B\),那么直接判断是否不能动即可。
P7841 「C.E.L.U-03」100%不公平的游戏
P11565 【MX-X7-T6】[LSOT-3] 棋盘
不妨设 \(f_{i, j, k, 0/1}\) 表示此时最小的可操作位置上面有 \(i\) 个棋子,下一个位置有 \(j\) 个,再下一个位置有 \(k\) 个棋子,需要最小/最大化操作数时的答案。
这个状态的转移中,只要 \(i \geq 2\) 就会一直让 \(i \leftarrow i - 2\) 并让 \(j \leftarrow j + 1\) 或 \(k \leftarrow k + 1\)(取较优的那个),知道 \(i\) 变成 \(1\) 或者 \(0\)。所以说不妨去掉 \(k\) 一维,直接考虑 \(f_{i, j, 0, 0/1} \to f_{i', j', 0, 0/1}\)。
此时状态记作 \(f_{i, j, op}\)。令 \(t = \lfloor \frac{i}{2} \rfloor, nxtop = op \oplus [t \bmod 2 = 1]\),则有转移 \(f_{i, j, op} \leftarrow t + f_{j + x, t - x, nxtop}\)。当务之急便是确认在两人足够聪明的情况下,\(x\) 是多少,这样便能记忆化搜索了。
考虑如下问题:
有一个类似帕斯卡三角形的图案,第 \(i\) 层有 \(i\) 个顶点(记作 \((i, 1), (i, 2), \dots, (i, i)\)),两人交替从顶点往下走,每一步可以向左(\((i, j) \to (i + 1, j)\))或者向右(\((i, j) \to (i + 1, j + 1)\)),总共走 \(t\) 步,第 \(t\) 层的节点有权值,一个人想最大化终点的权值,一个人想最小化。问两人的策略。
我们分类讨论:
- \(t\) 是偶数,则后手通过每一步与先手相反的方法,必定可以选到 \((t + 1, \frac{t}{2} + 1)\)。此外还可以选到 \((t + 1, \frac{t}{2})\) 和 \((t + 1, \frac{t}{2} + 2)\) 中对自己来说较劣的一个结果;
- \(t\) 是奇数,则后手通过同样的方法可以限制先手只能选到 \((t + 1, \frac{t + 1}{2})\) 和 \((t + 1, \frac{t + 1}{2} + 1)\) 中对先手较优的结果。
简单讨论一下可以证明这个结论的充要性,此处略去。
那么一个状态最多扩展出三个状态,且三个状态后续的扩展有重叠,最多扩展 \(O(\log n)\) 轮(两次扩展总数减半),总复杂度是一个关于 \(\log n\) 的多项式,可以通过。
P6377 [PA 2010] Termites
先把题目转化成这样:
有一个变量 \(s\),两人按照题设中的规则取数,先手取得 \(x\) 会使得 \(s \leftarrow s + x\),后手取得会使 \(s \leftarrow s - x\),先手要使 \(s\) 最大,后手要使 \(s\) 最小,求 \(s\)。
可以发现这个题和原题本质相同,并且两人的利益有了直接冲突,这样更好分析一些。
我们分析题目的形式,是若干个双端队列加上(至多)两个栈。
先考虑一个单谷双端队列的情况(先单调不升,后单调不降),我们声称最优策略是每次取左右两边的较大值。
证明:假设一个人不这么做,那么如果另一个人不吃这套,还是坚持取最大值,你会发现结果还不如取最大值。
这样就解决了单谷的问题。继续考虑一个不是单谷的情况:\(a_{i - 1} < a_i > a_{i + 1}\)。我们声称这三个数完全等价于 \(a_{i - 1} + a_{i + 1} - a_i\),即把这三个数替换成这一个新的数,答案不会变化。
证明:可以看出两人都想要取得更大的数 \(a_i\)。如果先手取了 \(a_{i - 1}\) 或 \(a_{i + 1}\),相当于把取 \(a_i\) 的机会让给了后手,那么这只有可能是先手想同时取得 \(a_{i - 1}\) 和 \(a_{i + 1}\),否则如果先手去别的地方取数,那么相当于他还是先手,但是刚刚白白亏了 \(a_i - a_{i - 1}/a_{i + 1}\) 的权值,还不如不取。
最后考虑一下前后两个栈的问题。我们把这两个栈拼成一个双端队列,中间加一个 \(-\inf\),那么 \(-\inf\) 一定是全局最后一个被取走的,这样就和双端队列等价了。算完后把这个 \(-\inf\) 的贡献去掉即可。
ARC137C Distinct Numbers
有引理:对于两个决策 \(A, B\),若对于所有的 \(A \to B \to C\) 都有 \(A \to C\),则 \(A\) 必胜。
感性证明:从 \(A\) 开始要到没有出边的状态至少要走 \(2\) 条边,而先手可以决定第一次走 \(1\) 条还是 \(2\) 条,故其掌握奇偶性,先手能决定胜负。
理性证明:若 \(B\) 必败,则 \(A\) 必胜;若 \(B\) 必胜,则存在一个 \(C\) 必败,则 \(A\) 必胜。
容易用这个结论做出此题。

浙公网安备 33010602011771号