P6154 游走

fox-konata / 2023-08-30 / 原文

原题

期望题通常有两种解决方案:

  1. 直接递推期望的答案

  2. 用总的答案/总的方案数

本人就在这道题上有第一种方案卡了很长时间,最后才发现用第二种方案解决很简单

下面直接说解法

首先\(E(x) = \frac{sum}{cnt}\),其中\(sum\)为总的路径长度之和,\(cnt\)为总的路径个数

因此我们对这两个东西分开\(dp\),设\(f_i\)表示从\(i\)开始的路径长度之和,\(cnt\)为从\(i\)开始的路径个数

容易想到递推式:

\[\begin{align} f_u &= \sum_{(u,v) \in E}{ f_v + g_v } \\ g_u &= \sum_{(u,v) \in E}{ g_v } + 1 \\ \end{align} \]

直接递推即可,最终答案为\(\frac{\sum{f_i}}{\sum{g_i}}\),总复杂度\(O(n)\)

\(dp\)的状态也可以设成到\(x\)结束的路径个数,转移类似,答案类似