题意简述
数轴上有 $n$ 个人,每人以相同速度向左或右移动。两人相遇则会有一人消失。向左的人消失概率为 $h$,向右的人消失概率为 $r = 1 - h$。
给定每个人的移动方向,求最终恰好剩下 $A$ 个向左的人和 $B$ 个向右的人的概率。($n\le 5000$。)
主要思路
注意到每种最终的状态都有唯一的分界点,其左边全都是向左的人,右边全都是向右的人。
不妨考虑 dp 出每个前缀剩下 $A$ 个向左的人的概率,每个后缀剩下 $B$ 个向右的人的概率,然后枚举分界点求出答案。
这里以前缀为例,设 $f(i, j)$ 表示前 $i$ 个人右边加上 $j$ 个向左的人后,剩余 $A$ 个向左的人的概率。
考虑第 $i$ 个人的方向:
- 向左,则 $f(i, j) = f(i - 1, j + 1)$。
- 向右,则 $f(i, j) = [j > 0]\cdot(h\cdot f(i, j - 1) + r\cdot f(i - 1, j))$。
显然有初始 $f(0, A) = 1$。于是轻松愉快地获得了 $O(n^2)$ 复杂度。
参考代码
1 |
|