【题解】P5021 [NOIP2018 提高组] 赛道修建 二分、贪心

题目链接

考虑二分,每次 check 是否存在大于等于 \(m\) 条树上不交的链满足链长 \(\ge\) \(x\)

性质:对于以 \(x\) 为根的子树,至多存在一条一个端点在 \(x\) 的子树内,另一个端点在 \(x\) 子树外的路径。

那么意味着我们处理出以 \(x\) 为根的子树内的最优解后,一定有一种全局最优解可以包含局部最优解。

那么我们考虑在树上 \(\text{DFS}\) 对每个 \(x\) 求出以其为根的子树的内部最优解以及在该情况下包含点 \(x\) 的由若干个祖先构成的最长链。

\(\text{multiset}\) 维护合并即可。

代码记录

posted @ 2021-09-15 19:01  Themaxmaxmax  阅读(33)  评论(0编辑  收藏  举报