2025.7.28 闲话:CF678E Another Sith Tournament 倒序状压 DP 的一点想法

\(f(S, x)\) 表示最开始 \(x\) 为擂主,参赛者集合为 \(S\) 时,最后 \(1\) 胜利的概率。

那么显然答案就是 \(\max_{x}\{f(U, x)\}\)\(U\) 表示全集。

起始状态是 \(f(1, 1) = 100\%\),表示只有 \(1\) 一个人参赛,且他自己为擂主时,\(1\) 获胜的概率为 \(100\%\)

注意:整个 DP 是倒序 DP,\(f\) 表示的是某个初始状态下能得到所需最终结果的概率;所以转移的时候应该以后续状态计算前驱状态

在转移时,枚举 \(x\) 的对手 \(y\)\(x\)\(y\) 都要在参赛者里。

考虑参赛者集合为 \(S\),擂主 \(x\)\(y\) 的所有结果:

  1. \(x\) 赢了,概率为 \(a_{x, y}\)后续 \(1\)\(f(S - \{y\}, x)\) 的概率胜利
  2. \(y\) 赢了,概率为 \(a_{y, x}\)后续 \(1\)\(f(S - \{x\}, y)\) 的概率胜利

两种情况加起来,再对每一个 \(y\) 取最小值即可。

顺便说一句,这题一定用的是集合的十进制表示小的推大的,所以可以直接顺序枚举。

posted @ 2025-07-28 21:54  Jerrycyx  阅读(11)  评论(0)    收藏  举报