P4253 [SCOI2015] 小凸玩密室

P4253

bzoj #4446

  • 非常好的一道树形 dp 题
  • 起初我看错题了 QwQ ,以为第一个选的必须为根
  • 首先我们发现假设我们选的第一个灯泡为 u ,他的行走过程是:uu 子树 fauu 兄弟子树 fafau
  • 因此我们考虑设 gu,i 表示从 u 点开始,便利完 u 子树后走到第 i 层需要的最小花费。
    • u 没有儿子时,显然 gu,i=(disfau,idisu)×afau,i ,其中 disu 表示 u1 的路径和,fau,i 表示 u 一直向上跳直到到达第 i 层的节点编号
    • u 有一个儿子时,容易得到 gu,i=gls,i+wls×als
    • u 有两个儿子时就比较难办了,因为我们不知道从一个子树跳跃到另一个子树的代价。为此,我们可以记 fu,i 表示从 u 访问其子树并走到第 j 层的兄弟节点的最小花费,则可以得到 gu,i=min(als×wls+fls,deprs+grs,j,ars×wrs+frs,depls+gls,j)
  • 然后考虑 fu,i 的转移,同理
  • 最终复杂度 O(nlogn)
posted @   FOX_konata  阅读(28)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
点击右上角即可分享
微信分享提示