其他分享
首页 > 其他分享> > $Luogu$ $P4745$ $[CERC2017]$ $Gambling$ $Guide$

$Luogu$ $P4745$ $[CERC2017]$ $Gambling$ $Guide$

作者:互联网

链接

背景

\(Central\) \(Europe\) \(Regional\) \(Contest\) \(G\) 题, \(Luogu\) \(P4745/BZOJ5197/Gym101620G\) ( \(Google\) \(Chrome\) 与原题面更配哦!)

题意

给定一张 \(n\) 个点, \(m\) 条边的无边权的无向图。有一人从 \(1\) 号点出发,可以随机向一个和当前直接相连的点走去,花费 \(1\) 的代价;也可以不动,重新随机一个点,也花费 \(1\) 的代价。求到达 \(n\) 点时的最小总花费。答案四舍五入保留 \(6\) 位小数。

解法

根据之前总结过的期望dp的设计方法,因为只有一个终点,且状态已知(期望花费为 \(0\) ),因此考虑逆推。自然地,设 \(f_x\) 表示点 \(x\) 到终点的期望花费。用 \(E\) 表示边集, \(deg_x\) 表示 \(x\) 点的度数,则有 \(f_x=\frac{ \sum_\limits{(x,y) \in E} \min \{ f_x,f_y \} }{deg_x}+1\) 。
那么,对于一个点 \(x\) 来说,能对它的期望产生贡献的相邻的点 \(y\) 必然有 \(f_y<f_x\) 。一开始不妨令所有的 \(x\) 点在计算 $ \min { f_x,f_y }$ 时都为 \(f_x\) (下文会证明确实只会出现这种情况)。
假设这样的 \(y\) 点有 \(cnt_x\) 个,则有 \(f_x=\frac{ \sum_\limits{(x,y) \in E,f_y<f_x} f_y}{deg_x}+ \frac{(deg_x-cnt_x) \times f_x}{deg_x}+1=\frac{ \sum_\limits{(x,y) \in E,f_y<f_x} f_y}{deg_x}+(1- \frac{cnt_x}{deg_x} ) \times f_x+1\) 。
因此,果断求出 $ \sum_\limits{(x,y) \in E,f_y<f_x} f_y $ ,记为 \(sum_x\) ,则 \(f_x=\frac{sum_x}{deg_x}+(1- \frac{cnt_x}{deg_x} ) \times f_x+1\) ,化简得 \(f_x= \frac{deg_x+sum_x}{cnt_x}\) 。

标签:期望,limits,花费,Luogu,sum,frac,CERC2017,Gambling
来源: https://www.cnblogs.com/Peter0701/p/11741788.html