Kruskal 重构树
在 Kruskal 最小/大生成树 — Luogu P1967 货车运输 一文中,介绍了 Kruskal 算法是如何生成最小生成树的
如果将两个联通块联通的不是边而是点呢?
这就是 Kruskal 重构树
具体来说就是,我们原来是通过一条边将两个联通块相连接的,现在我们新建立一个点,将这两个联通块的根节点连接到这个点上,原来的边权就是这个新建节点的点权,这样执行下来,我们会得到一棵新的树,这个树有以下两个特征
- 没有 边权
- 保证是一个堆
- 大根堆还是小根堆要看 原来 生成的是最小还是最大生成树
- 因为我们保证边权的单调性,故后期新建节点的点权也是单调的,故新树是一个堆