[Record] 随机游走问题入门题目
施工中……
线性随机游走
[Cnoi2020] 线形生物
关键点:期望线性性。
根据题意列出期望方程如下:
其中 \(E(x\rightarrow y)\) 表示从 \(x\) 到 \(y\) 的期望步数,\(d_x\) 表示以 \(x\) 为起点的返祖边数量,\(\text{Edge}\) 表示返祖边集合。
根据期望的线性性,有 \(E(1\rightarrow y)=E(1\rightarrow x)+E(x\rightarrow y)\ (1\leq x<y\leq n+1)\)。
代入得:
移项:
[北大集训 2021] 随机游走
关键点:几何分布。
很容易想到要是期望步数尽可能大,所有返祖边必须指回起点。
假设已知每个点 \(i\) 的返祖边数量为 \(b_i\),根据伯努利试验的结论,设 \(E_i\) 为从起点走到 \(i\) 的期望步数,则有转移:
然后考虑 \(b\) 数组,如果 \(m<n-1\),显然给序列长度为 \(m\) 后缀每个节点分配 \(1\) 条边最优。
对于其他情况,感性理解打表可以发现最优方案:给 \(1\) 号点分配 \((\lfloor\dfrac{m}{n+1}\rfloor-1)\) 条边,其余点均匀分配剩下的边,若有剩余给后缀的每个点多分配 \(1\) 条边即可。
上面期望计算的式子可以化为后缀积的和的形式,有了 \(b\) 数组之后可以直接推式子求解或矩阵快速幂递推。
自动机随机游走
关键点:直接列出期望方程高斯消元。
[JSOI2009] 有趣的游戏
建出 \(\text{trie}\) 图,转换成在自动机上的随机游走模型。
发现考虑正推是不好做的,但是 \(\text{trie}\) 图上后继状态很容易确定,因而考虑概率倒推。
这样方程就很好设了,根据 \(\text{trie}\) 图上期望转移的权值设出方程高斯消元即可。
[SDOI2017] 硬币游戏
关键点:主元法。
发现是前一题的加强。找规律太玄学了,考虑主元法。
概率正推的转移为
发现每个 \(u\) 转移内除了一个 \(\text{trie}\) 树上的父亲,其余点在 \(\text{trie}\) 上的深度均大于 \(u\)。
移项,表示出 \(u\) 的父亲
将每个关键点设成未知数,当两个关键点走到它们的最近公共祖先时,可以列出一个方程,这样可以列出 \(n-1\) 个方程。
又有 \(\sum_{u\in\text{Key}} P(u)=1\),凑成 \(n\) 个方程。
Boring Problem
关键点:主元法。
和前两题不一样的是,这道题需要算到达关键点的步数期望,因此关键点的答案就是 \(E(u)=0\),相当于需要在关键点处列出相应的方程。
需要正推,此时节点 \(u\) 边指向的节点,只有深度小于 \(u\) 的与 \(u\) 的儿子,那么当 \(u\) 只有一个儿子时,期望的转移是确定的,否则由于 \(\text{fail}\) 边的存在,不能直接确定所有儿子的信息,需要设元。
发现在 \(u\) 处设元表示不出所有儿子,因此当 \(u\) 有 \(k\) 个儿子时,选取其中 \(k-1\) 个设元,可以仿照上题推出剩余的儿子 \(v\) 被其余节点表达的式子。
因为
所以有
构造出系数矩阵按照 \(\text{bfs}\) 序转移,\(-\frac{1}{p(u,v)}\) 的常数移项到增广矩阵内即可。
网格图随机游走
关键点:直接列出期望方程高斯消元。
[ICPC 2014 WF] Pachinko
关键点:band-matrix 优化。
正常按照题意列出网格图期望方程,由于 \(w\leq 20\),因此高斯消元矩阵构成带宽 \(d\leq 39\) 的 band-matrix,时间复杂度可以优化至 \(O(w^2h)\)。
Broken robot
关键点:band-matrix 优化。
根据题意列出期望方程(以不在边界上的格子为例):
注意到只有 \(E(i+1,j)\) 在下一行,而其余变量均与 \(E(i,j)\) 在同一行,因此考虑自下而上逐行以此解方程,此时 \(E(i+1,j)\) 由于已经被解出,可以视作常量。
移项得到:
由于 \(E(i,j)\) 的方程只涉及到 \(E(i,j-1)\) 与 \(E(i,j+1)\),因此高斯消元矩阵构成带宽 \(d=3\) 的 band-matrix,直接求解即可,时间复杂度 \(O(n^2)\)。
树上随机游走
「NOI模拟」树上游走
关键点:树形期望 dp。
为了简化问题避免换根,可以直接将题目给定的 \(S\) 设为根节点。
容易发现这里的树形 dp 是一个类似插头的形式,可以设 \(f[u][0/1/2]\),意义如下:
- \(f[u][0]\):\(u\) 的父亲已被删除,且此时是第一次访问 \(u\),此时的答案期望。
- \(f[u][1]\):\(u\) 的父亲已被删除,且此时是第二次访问 \(u\),此时的答案期望。
- \(f[u][2]\):\(u\) 的父亲未被删除,则一定是第一次访问 \(u\),此时不经过 \(u\) 的父亲的答案期望。
详细分讨转移即可。

浙公网安备 33010602011771号