最小树形图

模板题:link

按照 dhx 的说法,证明非常复杂,因此直接给出做法。

首先比较自然的,每个点连最小的出边,会构成一个基环森林,那么类似 Boruvka 算法,将环上的点合并,当然出边也要合并,并且因为这个点如果换了出边的话原来的边就不需要了,因此边权应变为 \(w-min_u\)。然后再次对每个点找最小的出边,直到没有环了就结束。

但是不同于 Boruvka 算法的是,因为是有向图所以并没有复杂度或者说合并轮数的保证,需要用 DS 来维护,容易想到维护两个可并堆来实现可并 set,时间复杂度 \(O(n\log n)\)

posted @ 2026-09-05 16:21  今天你学废了么  阅读(6)  评论(0)    收藏  举报