[JOISC 2019 Day3]指定城市
指定城市
题解
这题其实挺水的。
很明显,没被选的边的边权和最小也就是求出所有被选的边的边权和最大。
对于subtask2:也就是求只有一个点为指定点的情况。也就是求出所有点到他需要建的边。我们很容易求出对于一个固定点的所有儿子的子树上的点到他的和。这个一个dfs就可以解决。那么我们是否可以通过它父亲为root时的和求出它为root时的和吗?当然可以的。我们只需要再进行一次dfs,将它本身从树上切出去,然后再连到它本身就可以了。具体来说就是:
这样,就可以解决问题了。
对于subtask3:即求两个点为指定点的情况。我们很容易从subtask 2中发现,对于一个点为root时的情况,当选择两个不在同一子树的叶节点时,肯定有一种情况是最大的。我们只需要维护对于一个点它子树上最深的叶节点,在维护其父亲时选择其父亲的

浙公网安备 33010602011771号