Liveddd's Blog

愛にできることはまだあるかい

Kruskal 重构树

Kruskal 生成树算法的扩展应用。

Kruskal 重构树

考虑一下该算法的过程:一开始 Kruskal 重构树只有 $n$ 个点,没有边。还是类似 Kruskal,我们将所有边从大到小进行考虑。对于每一条边 $(u,v,w)$,若 $u,v$ 不联通,我们就在 Kruskal 重构树上新建一个 $t$。将 $u,v$ 在重构树上的根节点 $rt_u,rt_v$ 作为 $t$ 的左右儿子,并且令 $t$ 点的权值为 $val_t=w$。

建了这样一棵树,我们很明显有这几个性质:

1.一般情况下他是一棵二叉树。

2.原图的节点都是重构树的叶子节点。

3.对于任意节点 $u$ 其祖先 $v$,$val_u$ 与 $val_v$ 满足相同偏序关系。

咕咕咕。