hihocoder 1247 树形XX~~

这篇博客讨论了如何在无根树中寻找以每个点为根时的最优树链剖分,以最小化树链剖分的代价。代价由路径上的轻边数量决定,每条边的代价等于其两端节点数的乘积。通过以1为根进行贪心策略的第一次DFS,然后将根移动到孩子节点并传递外界信息进行第二次DFS,可以解决这个问题。这种方法涉及信息维护和树的结构修正。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hihocoder 1247

描述

王胖浩有一个n个节点的树。他有特殊的能力,能将树划分成若干条链。

一个有根树的树链剖分为将整棵树划分成若干条从一个点到这个点的祖先(包括本身)的链,并且这些链没有公共点。如果一条边在某条链上,即这条边的两个端点在同一个链上,那么这个边为重边,否则为轻边。

一个树链剖分的代价为所有点对的路径上轻边的个数之和。这里将u,v和v,u当成同一个点对。一个有根树的最优树链剖分为所有方案中代价最小的方式。

他想通过合理地使用他的特殊能力,使得树链剖分最优。

他得到了一个无根树,他想知道以每个点为根对应的有根树的最优树链剖分的代价。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值