二分答案:对 D 二分,检查是否能用不超过 k 次删边,使所有连通块直径 ≤D。
可行性检查(贪心 + 树形 DP,自底向上):
固定根(任意如 1),一次性预处理父子关系与后序序列。
对每个节点,把每个子树向上“贡献”的路径长度记为 t=up[v]+w(u,v)。
在一颗覆盖全国的光纤通信网络中, n 条光纤节点按照道路连接形成一棵无向树。相邻节点之间的光纤长度记为 we 。长距离信号衰减明显,为了提升整体质量,工程师计划在不改变节点位置的前提下,将网络切割成若干段,使得每一段内部的最远通信距离(即直径)都不超过某个值。
具体来说,工程师可以拆除至多 k 条光纤(删除对应的边),从而把原树分成至多 k+1 个连通部分。定义一棵树(或连通部分)的 直径 为该部分中两点间最短路径的最大长度,即所有路径长度之 max 。
请你计算:在最多拆除 k 条光纤的前提下,所能得到的最小可能最大直径值。也就是说,你需要给出一个整数 D ,满足: