zoukankan      html  css  js  c++  java
  • 题面

    题意

    树上一点随机游走到另一点距离的期望

    样例

    Sample.in

    4 2
    1 2
    2 3
    3 4
    1 4
    3 4 
    View Code

    Sample.out

    4 2
    1 2
    2 3
    3 4
    1 4
    3 4 
    View Code

    题解

    考虑dp,发现我们很多东西不确定。但是u -> v必定会经过lca(u,v),从这方面入手

    记录 sf [ p ] 是 p 到 fa[ p ] 距离的期望,fs [ p ] 是 fa [ p ] 到 p 的期望,答案可以分为 u->lca(u,v) 的一段 sf 和 lca(u,v)->v 的一段 fs

    记录 deg [ p ] 为 p 的度

    对于 sf, 可以由p一步到fa[p],也可以在 p 自己的子树内乱走到 p

    就是 sf [ u ]=1+( sf [ v ] ) / deg [ u ] + ( 1 - 1 / deg [u] ) * sf [ u ]

    发现变成了 sf [ u ] = deg [ u ] + sf [ v ]

    一开始没懂第一项的那个 1 ,其实这是因为无论如何都会至少走一步,不属于其他点的贡献,下面也是这样

    对于 fs ,可以从爸爸一路过来,也可以从爸爸的子树重新上到爸爸过来

    就是 fs [ u ] = 1 / deg[ fa[ u ] ] + (1+ fs[ u ] + fs[ fa[ u ] ]) / deg[ u ] + (1 + fs[ u ]+ sf[ v ]) / deg[ u ]

    发现变成了 fs[ u ]  = ( 1 + deg[ u ] + fs[ fa[ u ] ] + fs [ v ]  ) / (  siz[ fa[ u ] - 1 - deg[ u ]  )

    这个是上来啊,手一抖写错,然后调死了

    再堆个lca板子就好了

  • 相关阅读:
    firefox浏览器播放音频
    Font Awesome图标字体应用及相关
    PHP输出A到Z及相关
    TensorFlow安装填坑之路(Windows环境)
    Git常用命令(一)
    spring boot 入门(一)
    JHipster简介
    Spring Boot实现文件下载功能
    IntelliJ IDEA插件系列
    什么是RESTful API?
  • 原文地址:https://www.cnblogs.com/monyhzc/p/13428239.html
Copyright © 2011-2022 走看看