[PKUWC2018] 随机游走 解题报告

[PKUWC2018] 随机游走 解题报告

题意简述

给定一颗树,当前所在点 \(u\) 时,随机等概率选择一条相邻边移动。以 \(x\) 为起点,问最终达到给定点集中所有点走的步数的期望。

思路分析

首先形式化题意一下,设给定点集为 \(S\),\(u,v\in V\),\((u,v)\in E\),则求

\[\max_{p\in S}T_p \]

利用 min-max 容斥 \(^{[1]}\) 进一步推导,得

\[\max_{p\in S}T_p=\sum_{sub \sub S}(-1)^{|sub|+1}\min_{q\in sub}T_q \]

于是就变成了求到达该点集中任意子集点的最小步数期望。考虑构造 DP 计算。

设 \(f(u)\) 表示从 \(u\) 出发首次到达 \(S\) 中任意一点的期望步数,那么存在两种情况,设 \(u\) 的子树集合为 \(T_S\):

  1. \(\exists u\in S,u\in T_S\);
  2. \(\forall u\in S, u\notin T_S\)

同时,由于是完全随机游走,哪怕是第一种情况也有可能访问不到 \(u\),于是对于游走本身,又存在两种情况:

  1. 从 \(u\) 出发,在命中 \(S\) 之前回到 \(fa\);
  2. 从 \(u\) 出发,要么到达目标集合 \(S\)(成功),要么回到父节点 \(fa\)(退出子树)

不妨设 \(p_u\) 为第一种情况的概率,\(e_u\) 为第二种情况的期望,于是有

\[f_u=p_u\times f_{fa}+e_u \]

考虑推导 \(p_u\) 和 \(e_u\) 的递推式。

根据定义,得到

\[p_u=\frac{1}{\deg[u]}\times 1+\sum_{v\in son[u]}\frac{1}{\deg[u]}p_v p_u \]

解出 \(p_u\),得

\[p_u=\frac{1}{\deg[u]-\sum_v p_v} \]

对于 \(e_u\),考虑在根节点的情况,由于根没有父节点,于是其全期望公式为

\[f_u=1+ \frac{1}{\deg[u]} \sum_{v\in son[u]} f_v \]

代入 \(f_v=p_v f(u)+e_v\),得

\[\begin{aligned} f_u&=1+\frac{1}{\deg[u]}\sum_{v}(p_v f_u+e_v)\\ &=1+\frac{1}{\deg[u]}\Big( f_u\sum_{v}p_v+\sum_v e_v \Big) \end{aligned} \]

记 \(S_a = \sum_v p_v\),\(S_b=\sum_v e_v\),则

\[\begin{aligned} f_u&=1+\frac{S_a}{\deg[u]}f_u+\frac{S_b}{\deg[u]}\\ &=\frac{\deg[u]+S_b}{\deg[u]-S_a} \end{aligned} \]

由于此时 \(f_u=e_u\),于是有

\[e_u=f_u=\frac{\deg[u]+S_b}{\deg[u]-S_a} \]

那么代回最终答案有

\[\text{ans}(S)=\sum_{sub}(-1)^{|sub|+1}f_{sub}(x) \]

由于直接进行子集枚举会导致 TLE,考虑利用高维前缀和优化:设 \(g[T]=(-1)^{|T|+1}f_T(x)\),于是就可以用 \(O(n2^n)\) 计算得到答案。

总结

本题重点在于利用待定系数法分析转移式,然后通过容斥定义解出系数的递推式。一个优化方法:使用高维前缀和加速子集容斥的计算。

注释

\([1]\):关于 min-max 容斥,其本质可以看成是用交集推导出并集,具体的,\(\max_{x\in S}x\) 可以看作对 \(S\) 中所有元素 \(x\) 的基本单位(1)的数量取并集,同理 \(\min_{x\in S}\) 就是求交集,利用基本都集合容斥关系也可以推得上述表达式。

posted @ 2026-10-26 20:22  LYZHaHa  阅读(6)  评论(0)    收藏  举报