板子题,模拟赛场切了。
思路
线段树换根板子题。
因为需要求每一个点的答案,所以定义 \(dp_i\) 表示以 \(i\) 为根的最长距离。
考虑将一个点 \(v\) 转化为根,树的形态会发生什么变化(假设 \(v\) 的父亲节点是 \(u\))。
发现在 \(v\) 子树中的节点,距离都会减少 \(w_{u \to v}\),其它节点都会加 \(w_{u \to v}\)。这个变化显然是可以将 DFS 序剖出来,然后用线段树优化的。
因为不能选择自己作为终点,所以查询最大值的时候避开即可。
Code
标签:Expense,题解,为根,abc222,ABC222F,节点,Expensive
From: https://www.cnblogs.com/WaterSun/p/AT_abc222_f.html