P5021 [NOIP2018 提高组] 赛道修建 题解
好题,鉴定为人类智慧题。
考虑在二分答案时如何 check。
发现这并不好做,因为我们并不好确定具体的路径。
尝试用类似树形 DP 的方法,求出一个子树内最多能分出多少长度
有一个 trival 的性质,就是如果一个路径经过子树但不被完全包含(子树外也有一部分),那么这样的路径有且仅有一条。
将子树内经过子树根的路径分分类,第一类完全包含于子树,第二类就是上面的情况且只有一条路径。
发现第二类是可以传递给父亲的,于是就对每个节点维护
合并时采取贪心策略。如果一部分
具体实现可以在 multiset 中从小到大二分,不再赘述。