题意 Link 给出一张$n$个点的无向图,每次询问两点之间边权最大值最小的路径 $n \leqslant 15000, m \leqslant 30000, k \leqslant 20000$ Sol 很显然答案一定在最小生成树上,但是此题还有一个更为玄学的做法—Kruskal重构树 它是在Kruskal算法上改进而来的. 算法流程: 对于此题来说,将边权从小到大排序 用并查集维护两点的联通性,若祖先不相同,那么新建一个节点,权值为边权.左右儿子分别为两个点 这样建出来的树,我们称之为Kru…
对于一个给定的连通的无向图 G = (V, E),希望找到一个无回路的子集 T,T 是 E 的子集,它连接了所有的顶点,且其权值之和为最小. 因为 T 无回路且连接所有的顶点,所以它必然是一棵树,称为生成树(Spanning Tree),因为它生成了图 G.显然,由于树 T 连接了所有的顶点,所以树 T 有 V - 1 条边.一张图 G 可以有很多棵生成树,而把确定权值最小的树 T 的问题称为最小生成树问题(Minimum Spanning Tree).术语 "最小生成树" 实际上是…