Kruskal 重构树

这玩意可以解决什么问题呢?

多次询问 最小生成树中(两点)最长边 或 最大生成树(两点)最短边。

构造(以最小生成树为例):

  1. 将原图的所有边按边权排序。

  2. 每次最小的一条边,如果条边相连的两个点在同一个集合中,那么就跳过,否则就将这两个点的祖先都连到一个虚点上去,让这个虚点的点权等于这条边的边权

性质:

  1. 原点一定在重构树上为叶子节点

  2. 重构树上的虚点的权值从上到下单调

  3. 两点之间的最大边权就是两点的 LCA


例题:

星际导航

posted @ 2023-08-09 07:28  Pwtking  阅读(19)  评论(0)    收藏  举报