概率期望 2026.5.13

\(\text{(I)}\) [AtCoder Beginner Contest 300 E] Dice Product 3

有数 \(x = 1\) 和 \(p = 1 \sim 6\) 随机整数,当 \(x < N\) 时 \(x \leftarrow px\),求数恰好等于 \(N\) 的概率。对 \(998244353\) 取模。
数据范围:\(2 \le N \le 10^{18}\)。

以下钦定所有对于函数中的分数为整数;若非整数,该项不计。

记 \(f(n)\) 为恰好为 \(n\) 的概率。

\[f(n) = \dfrac{1}{6}(f(n) + f(\dfrac{n}{2}) + f(\dfrac{n}{3}) + f(\dfrac{n}{4}) + f(\dfrac{n}{5}) + f(\dfrac{n}{6})) \]

\[\frac{5}{6}f(n) = \dfrac{1}{6}(f(\dfrac{n}{2}) + f(\dfrac{n}{3}) + f(\dfrac{n}{4}) + f(\dfrac{n}{5}) + f(\dfrac{n}{6})) \]

\[f(n) = 5^{-1}(f(\dfrac{n}{2}) + f(\dfrac{n}{3}) + f(\dfrac{n}{4}) + f(\dfrac{n}{5}) + f(\dfrac{n}{6})) \]

由于 \(N\) 很大,不能递推,只能递归,加入记忆化即可。

\(\text{(II)}\) [AtCoder Beginner Contest 333 F] Bomb Game 2

有 \(N\) 人队伍,重复直到只剩 \(1\) 人:第一个人一半概率离开,一半概率去队伍末尾。求最终剩下的人初始编号为 \(i = 1, 2, \dots, N\) 的概率。对 \(998244353\) 取模。
数据范围:\(2 \le N \le 3 \times 10^3\)。

记 \(f_{n, k}\) 为剩 \(n\) 人第 \(k\) 人剩下的概率。

\[f_{n, k} = \begin{cases}\dfrac{1}{2}f_{n, n}, &k = 1,\\\dfrac{1}{2}(f_{n, k-1} + f_{n-1, k-1}), &k \ne 1.\end{cases} \]

转移有环,不能直接转移。

\[f_{n, 1} = 2^{-1}f_{n, n} = 2^{-2}(f_{n, n-1} + f_{n-1, n-1}) = 2^{-2}(2^{-1}(f_{n, n-2} + f_{n-1, n-2}) + f_{n-1, n-1}) \]

不太好算,分开求。

\(f_{n, n-x}\) 的系数为 \(2^{-x-1}\),令 \(n-x = 1\),则 \(x = n - 1\) 求出右式中 \(f_{n, 1}\) 系数为 \(2^{-n}\)。

\(f_{n-1, n-y}\) 的系数为 \(2^{-y-1}\),利用数学归纳法可知 \(1 \le n - y \le n - 1\)。

有点难看,设 \(n - y = t\),则 \(y = n - t\),则 \(f_{n-1, t}\) 的系数为 \(2^{t-n-1}\)。

综上,

\[f_{n, 1} = 2^{-n}f_{n, 1} + \sum_{i=1}^{i-1} 2^{i-n-1}f_{n-1, i} \]

移项,

\[f_{n, 1} = \dfrac{\sum_{i=1}^{i-1} 2^{i-n-1}f_{n-1, i}}{1 - 2^{-n}} \]

代入,

\[f_{n, k} = \begin{cases}\dfrac{\sum_{i=1}^{i-1} 2^{i-n-1}f_{n-1, i}}{1 - 2^{-n}}, &k = 1,\\2^{-1}(f_{n, k-1} + f_{n-1, k-1}), &k \ne 1.\end{cases} \]

直接计算即可。

\(\text{(III)}\) [AtCoder Beginner Contest 271 G] Access Counter

有网站,两人每小时尝试访问,每天的每小时规定一人,两天的规定是一样的。A 有 \(X\%\) 概率成功,B 有 \(Y\%\) 概率成功,求第 \(N\) 次成功是 B 的概率。对 \(998244353\) 取模。
数据范围:\(1 \le N \le 10^{18}, 1 \le X, Y \le 99\)。

设 \(p_i\) 为第 \(i\) 小时发生访问的概率。则一天不发生访问的概率 \(q = \prod_{i=0}^{23} (1 - p_i)\)。

从某小时访问 \(j\) 到下次访问在 \(k\) 的概率为 \(P(j \to k) = \prod_{h \in [j + 1, k - 1]} (1 - p_h) \cdot p_k \cdot (1 + q + q^2 + \cdots)\)

\[P(j \to k) = \dfrac{\prod_{h \in [j + 1, k - 1]} (1 - p_h) \cdot p_k}{1 - q} \]

其中区间 \([j + 1, k - 1]\) 表示 \(j + 1 \to k - 1\) 这段时间。

矩阵快速幂加速。转移矩阵中,\(Base_{j, k} = P(j \to k)\)。初始矩阵为其最后一行。

则答案为最终所有 B 访问小时的概率和。

\(\text{(IV)}\) [AtCoder Beginner Contest 243 F] Lottery

有 \(N\) 个物品,抽中第 \(i\) 种的概率是 \(\dfrac{w_i}{\sum w}\)。求抽 \(K\) 次后恰好抽中 \(M\) 种的概率。对 \(998244353\) 取模。
数据范围:\(1 \le M \le N \le 50, 1 \le K \le 50\)。

设前 \(i\) 个物品抽了 \(j\) 次且抽中物品数恰好为 \(k\) 的概率为 \(f(i, j, k)\),则:

不选,\(f(i, j, k) \leftarrow f(i-1, j, k)\);

选,选 \(1 \le x \le j\) 个,\(f(i, j, k) \leftarrow f(i-1, j-x, k-1) \cdot (\dfrac{w_i}{\sum w})^x \cdot \binom{j}{x}\)。

乘上自身概率,不计顺序,要随机安排,还要乘组合数。

\[f(i, j, k) = f(i-1, j, k) + \sum_{x=1}^{j} f(i-1, j-x, k-1) \cdot (\dfrac{w_i}{\sum w})^x \cdot \binom{j}{x} \]

直接计算即可。

\(\text{(V)}\) 绿豆蛙的归宿

给定 \(n\) 个点 \(m\) 条边的带边权有向无环简单图,走向每条边的概率均等。求 \(1 \to n\) 的路径长度期望。保留 \(2\) 位小数。
数据范围:\(1 \le n \le 10^5, 1 \le m \le 2n\)。

考虑期望动态规划,在图上拓扑排序。

逆推:反向建图,令 \(dp_i\) 为 \(n \to i\) 的期望,\(S_u\) 表示直接连边的点集,\(T_{u \to v}\) 表示 \(u \to v\) 路径长度,有:

\[dp_u = \sum_{v \in S_u} \dfrac{dp_v + T_{u \to v}}{|S|} \]

正推可自行了解。直接计算即可。

\(\text{(VI)}\) OSU!

\(n\) 轮操作,每轮操作成功概率已给出。连续 \(X\) 轮操作成功可贡献 \(X^3\) 分数。求期望得分。保留 \(1\) 位小数。
数据范围:\(1 \le n \le 10^5\)。

考虑 \(X \to X + 1\) 的影响。

\((X+1)^3 = X^3 + 3X^2 + 3X + 1\)

相当于 \(X\) 每多 \(1\),\(X^3\) 增加 \(3X^2 + 3X + 1\)。

考虑维护增加 \(X^2\) 和 \(X\) 的期望。

\[f_x(i) = p_i(f_x(i-1) + 1) \]

\[f_{x^2}(i) = p_i(f_{x^2}(i-1) + 2f_x(i-1) + 1) \]

\[f(i) = f(i-1) + p_i(3f_{x^2}(i-1) + 3f_{x}(i-1) + 1) \]

直接顺序计算即可。

\(\text{(VII)}\) [AtCoder Grand Contest 028 B] Removing Blocks

有 \(N\) 个方块排成一排。定义相连:两个方块相连当且仅当其(本身和)中间所有方块都未被移除。选择一个方块移除的代价是与其相连的所有方块的质量之和。求所有 \(N!\) 移除方案的代价之和。对 \(10^9 + 7\) 取模。
数据范围:\(1 \le N \le 10^5\)。

考虑期望 \(E(X) = \dfrac{\sum X}{N!}\),我们通过期望转化。

考虑计算元素在特定顺序下的权值 \(w_i\),建树可知等价于深度,则 \(X_i = w_ia_i\)。也就是求 \(w_i\) 期望 \(E(w_i)\)。

计算 \(w_i\) 等价于计算有多少元素是 \(i\) 的祖先。

考虑对于排列,若 \(x < i\) 且 \(x\) 是 \(i\) 的祖先,则 \([x, i)\) 都应比 \(i\) 后删除,且仅有这些元素的相对顺序重要,它们占总方案数的:

\[\dfrac{(i-x)!}{(i-x+1)!} = \dfrac{1}{i-x+1} \]

同理 \(x > i\) 时 \(\dfrac{1}{x-i+1}\)。

则:

\[E(w_i) = \sum_{x=1}^{i-1} \dfrac{1}{i-x+1} + \sum_{x=i+1}^{n} \dfrac{1}{x-i+1} + 1 \]

哇好难看我们换元。令 \(i - x + 1 = a \in [2, i], x - i + 1 = b \in [2, n - i + 1]\)。

\[E(w_i) = \sum_{x=2}^{i} \dfrac{1}{x} + \sum_{x=2}^{n - i + 1} \dfrac{1}{x} + 1 \]

换都换了再换一个。令 \(t_i = \sum_{x = 1}^{i} \dfrac{1}{x}\),则:

\[E(w_i) = t_i - 1 + t_{n - i + 1} - 1 + 1 = t_i + t_{n - i + 1} - 1 \]

又:

\[n! \sum_{i = 1}^{n} E(w_i)a_i = n! \sum_{i = 1}^{n} (t_i + t_{n - i + 1} - 1)a_i \]

直接计算即可。

\(\text{(VIII)}\) [HNOI 2015] 亚瑟王

有一套卡牌共 \(n\) 张。将 \(n\) 张卡牌排列成确定的输入的顺序。第 \(i\) 张卡牌的技能发动概率为 \(p_i\),如果成功发动,则会对敌方造成 \(d_i\) 点伤害。一局游戏一共有 \(r\) 轮。在每一轮中,系统将对于依次考虑的每一张卡牌,发动过技能的卡牌不再具备概率,否则试图发动技能,发动成功则结束本轮。求出这一套卡牌在一局游戏中能造成的伤害的期望值,你的误差不得超过 \(10^{-8}\)。\(T\) 组测试数据。
数据范围:\(1 \leq T \leq 444, 1 \leq n \leq 220, 0 \leq r \leq 132, 0 < p_i < 1\) 且 \(p_i\) 最多包含四位小数。

\[E(X) = \sum_{i=1}^{n} E(X_i) = \sum_{i=1}^{n} P(X_i)d_i \]

令 \(f(i, j)\) 为所有轮数中前 \(i\) 张牌出了 \(j\) 张的概率。\(f(0, 0) = 1\)。

\[P(X_i) = \sum_{j=0}^{r}f(i-1, j)(1-(1-p_i)^{r-j}) \]

考虑如何算 \(f(i, j)\)。

若最终没有选第 \(i\) 张,

\[f(i, j) \leftarrow f(i-1, j)(1-p_i)^{r-j} \]

若最终选了第 \(i\) 张,要求 \(j > 0\),

\[f(i, j) \leftarrow f(i-1, j-1)(1 - (1-p_i)^{r-j+1}) \]

动态规划即可。

\(\text{(IX)}\) [六省联考 2017] 分手是祝愿

有 \(n\) 个灯和 \(n\) 个开关,给定这 \(n\) 个灯的初始状态,目标是使所有灯都灭掉。当操作第 \(i\) 个开关时,所有编号为 \(i\) 的约数的灯的状态都会被改变。求先随机操作,最后小于等于 \(k\) 步,使用操作次数最小的操作方法的操作次数的期望乘以 \(n!\) 的结果。对 \(100003\) 取模。
数据范围:\(1 \le n \le 10^5\)。

显然每个开关的操作是独立的,不存在两个开关等效替代一个。从大到小扫一遍,就可以知道要按下的开关。那么也就是说,如果按的开关不是这些其一,那么一定得再按一次按回来。

记 \(f(i)\) 为从第 \(i\) 个需要按的开关到第 \(i - 1\) 个的期望操作次数(讨论的不是相对位置,而是按下开关的顺序),则:

\[f(i) = \dfrac{i}{n} + \dfrac{n - i}{n}(f(i) + f(i + 1) + 1) \]

意义:有 \(\dfrac{i}{n}\) 概率按对,否则要把它按回来,多一次,按回来之后还是要 \(f(i)\) 次。转移带环。

\[f(i) = \dfrac{1 + \dfrac{n - i}{n}f(i + 1)}{\dfrac{i}{n}} = \dfrac{n + (n - i)f(i + 1)}{i} \]

设一定要按下的按键个数为 \(x\),则答案为:

\[\begin{cases}n!x, &x \le k,\\n!(\sum_{i=k+1}^{x}f(i) + k), &x > k.\end{cases} \]

直接计算即可。

\(\text{(X)}\) [AtCoder Beginner Contest 215 G] Colorful Candies 2

有 \(N\) 个糖果从左到右排成一列,颜色为 \(c_i\)。从排成一列的 \(N\) 个糖果中等概率地随机获得 \(K\) 个糖果,对于 \(K \in [1, N]\) 的每一种情况,求出获得的糖果中包含的颜色种类数的期望值。对 \(998244353\) 取模。
数据范围:\(1 \le N \le 5 \times 10^4\)。

离散化,求得糖果颜色个数 \(a_i\),并合并相同的颜色个数,共 \(m\) 个颜色组,记第 \(i\) 种数量的颜色组被选中的期望为 \(X_i\),具有该个数的颜色种数 \(G_i\)。合并计算。

\[E(X) = \sum_{i=1}^{m} E(X_i) \]

\[E(X_i) = \dfrac{\binom{n}{k} - \binom{n-a_i}{k}}{\binom{n}{k}} \times G_i \]

即所有方案减去选不中的方案占所有方案的比值。

\[E(X) = \dfrac{1}{{\binom{n}{k}}}\sum_{i=1}^{m} (\binom{n}{k} - \binom{n-a_i}{k}) \times G_i \]

计算即可。

\(\text{(XI)}\) [AtCoder Regular Contest 165 E] Random Isolation

有一棵包含 \(N\) 个顶点的树。你需要不断从所有属于某个包含至少 \(K+1\) 个顶点的连通分量的顶点中,等概率随机选择一个顶点,删除以该顶点为端点的所有边,直到所有连通分量中包含的顶点数都不超过 \(K\),求进行操作的期望次数。对 \(998244353\) 取模。
数据范围:\(1 \le K < N \le 100\)。

转化问题,对于随机排列 \(P\),按顺序考虑,若所在连通块大小大于 \(K\) 则操作,否则跳过。求操作期望次数。

考虑每棵子树对答案的贡献。用树形动态规划转移即可。

posted @ 2026-05-13 10:46  _lhr  阅读(25)  评论(0)    收藏  举报