博弈论

必胜必败博弈

  • 利用必胜/必败 DP 寻找规律。
  • 研究初始/结束状态。

必胜/必败 DP

ARC105E Keep Graph Disconnected

预处理奇连通块有 odd 个(除掉 \(1,n\) 的联通块),设 \(1\) 联通块奇偶性为 \(A\)\(n\) 联通块奇偶性为 \(B\)

先手能赢当且仅当存在一种方案使得后手无论如何应对,都有 \(\frac{n(n-1)}{2}-m-x(n-x)\) 为奇数,\(x\) 为连完所有不使得 \(1,n\) 联通的边后 \(1\) 联通块大小。

\(x(n-x)\) 在先手能赢的时候奇偶性是 win。

就是问能否存在一种方案使得后手无论如何应对,都有 \(Ax+By \equiv 1 \mod 2, x + y + 2z = odd\)\(x\) 是与 \(1\) 联通奇连通块个数,\(y\) 是与 \(2\) 联通奇连通块个数,注意 \(z\) 是因为可以将两个奇连通块合并成偶连通块让它人间蒸发。

必胜必败 DP 即可,不用分讨,更适合傻逼宝宝体质。

结论&规律

#3024. 「NOI模拟」加与乘

\(0\) 表示偶数,\(1\) 表示奇数。简单归纳,可得:

\[\begin{aligned} (1)\ 0,0 &\to 0 \\ (2)\ 0,1 &\to 0/1 \\ (3)\ 1,1 &\to 0/1 \end{aligned} \]

首先,由于任意两个数均可生成 \(0\),若最后一步是 \(A\) 操作,则 \(A\) 必胜。

排除这种情况后,\(B\) 每次操作均在序列长度是偶数时,\(A\) 每次操作均在序列长度为奇数时。

\(H\) 表示一个序列所有 \(1\) 连续段长度除二向上取整的和,即:

\[H = \sum_{i} \lceil\frac{len_i}{2}\rceil \]

e.g. 如序列 \(\{0{\color{red} 10}{\color{green} 11}{\color{red} 10}0{\color{green} 11}\}\)\(H\) 就是 \(4\)。形象理解就是把任意一个 \(1\) 连续段通过 \((2),(3)\) 操作全部消为 \(0\) 的次数之和。

那么 \(A\) 的目标就是让 \(H\) 归零,\(B\) 的目标就是阻止 \(H\) 归零。

下面证明两个引理 :

  • 引理 1:\(A\) 每次操作都能使 \(H(H>0)\) 减少 \(1\),且无法使 \(H\) 减少更多。

构造性证明,\(A\) 仅需要在有 \({\color{green} 11}\) 时删 \({\color{green} 11}\),无 \({\color{green} 11}\) 时删 \({\color{red} 10}\),都可以让 \(H \gets H - 1\),没有更优的操作方案。

  • 引理 2:\(B\) 每次操作都能使 \(H\) 不变,且无法使 \(H\) 增加。

唯一影响该引理的就是

分讨,若 \(H<\frac{n}{2}\),则一定存在一组 \({\color{green} 11}\) 将其赋值为 \(1\) 后只使得 \(len_i \to len_i - 1\) 或一组 \({\color{red} 10}\) 将其赋值为 \(1\) 后使得 \(len_i\) 不变。

\(H = \frac{n}{2}\),原序列一定形如 \(\{\operatorname{{\color{red} xx}{\color{green} xx}{\color{red} xx}{\color{green} xx}{\color{red} xx}{\color{green} xx}}\}\),这个时候如果 \(n=2\) 显然合法,接下来讨论 \(n > 2\) 的情况,如果存在 \({\color{green} 11}\),将 \({\color{green} 11}\) 置为 \(1\)\(H\) 一定不变,如果不存在 \({\color{green} 11}\),则一定存在一个 \({\color{red} 10}\) 将其赋值为 \(1\) 后使得 \(len_i\) 不变。

综上,判断 \(H\) 是否 \(\le A\) 可以操作的轮数即可。

min-max 博弈

此类问题通常可以先 dfs 观察结论,通过数学归纳法进行证明。

CF995D Game

观察到一个串的期望权值是其可达的所有 01 串 \(R\)\(f(R)\) 的平均数,考虑证明:

若当前串 \(R\) 只有 \(1\) 个数不确定,A 选权值大的一种情况,B 选权值小的一种情况,此时结论显然成立。

若当前串 \(R\)\(k\) 个数不确定。不妨设将第 \(i\) 个数置为 \(0\) 的期望为 \(E_{0}(i)\),将第 \(i\) 个数置为 \(1\) 的期望为 \(E1(i)\)\(S_i = \max(E_0(i),E_1(i)),\ T_i = \min(E_0(i),E_1(i))\)。此时 A 选择 \(S_i\) 最大的 \(i\),B 选择 \(T_i\) 最小的 \(i\)。发现 \(S_i,T_i\) 后继可达 01 串不交,且覆盖了 \(R\) 的后继可达 01 串。

又由于 \(S_i,T_i\) 后继可达 01 串都有 \(2^{k-1}\) 个,所以 \(2^{k-1}(S_i+T_i)\) 就是 \(R\) 后继可达 01 串的权值和。因此 \(S_i\) 最大等价于 \(T_i\) 最小,即 A、B 的最优决策点相同。所以 \(E(R)\) 也就是 \(R\) 后继可达 01 串的权值平均数。

结论得证。

posted @ 2025-04-11 15:23  flowing_boat  阅读(19)  评论(0)    收藏  举报