5814. 【NOIP提高A组模拟2018.8.14】 树(期望 + 倍增)

5814. 【NOIP提高A组模拟2018.8.14】 树

Problem
  • 给定一棵 n 个点的树, m 次询问,每次询问一个点 u 走到一个点 v 经过的期望边数.

  • N 100000 , Q 100000

Solution
  • 根据期望的线性性,即

    E ( X + Y ) = E ( X ) + E ( Y )

  • 可得,两个点之间的期望距离,实际上等于从 u l c a , l c a v 的期望步数.

  • f [ i ] 表示 i f a [ i ] 的期望距离, g [ i ] 表示 f a [ i ] i 的期望距离.

  • 因为这是一个无穷级数,所以我们可以列一个方程,然后就可以得到答案了.

  • 因为这道题比较基础,所以我们考虑一下拓展。

  • 比如说这道题:3143: [Hnoi2013]游走

  • 同样需要用到期望的线性性,最终答案即为每条边被经过的次数乘上其长度.

  • 也就是说如果算出了一条边被经过的次数,最后贪心一下即可.

  • 那么很容易发现,实际上可以把一条无向边拆为两条有向边,用高斯消元求解即可.

猜你喜欢

转载自blog.csdn.net/Algor_pro_king_John/article/details/81672710