CF671D Roads in Yusland

发布时间 2023-09-21 18:35:12作者: Ender_32k

1D8 ya。

\(f_{u,i}\) 表示覆盖了 \(u\) 子树并且向上覆盖到了深度为 \(i\) 的最小代价。

考虑合并儿子 \(v\):

\[f'_{u,i}\gets \min\left(f_{u,i}+\min\limits_{j=1}^nf_{v,j},f_{v,i}+\min\limits_{j=1}^nf_{u,j}\right) \]

相当于区间加,单点取 \(\min\),区间求最小值。

直接线段树合并维护就没了,可能要写垃圾回收。复杂度 \(O(n\log n)\)