题目链接:LibreOJ 136. 最小瓶颈路
题目描述:
给定一张无向图,询问两个结点之间的最小瓶颈路。
u
和v
两个结点之间最小瓶颈路指的是u
和v
的每条路径中经过的最大边权的最小值。
题解:
给出结论:无向图的最小瓶颈路与其最小生成树上两个结点之间最小瓶颈路值相等。
上面结论的证明我们可以参考Krusca
求解最小生成树的过程,对于当前可以加入的一条边(u, v, w)
,u
和v
之间的最小瓶颈路当前这条边,因为在之前的过程中经过权重比w
小的边不能使u
和v
连通,根据这个过程我们便可以发现第一次让u
和v
相连的边的权重就是最小瓶颈路(这也是为什么Kruscal
重构树可以求最小瓶颈路的原理),而不难发现这个值也就是u
和v
路径上的边权最大值。
有了上述的结论,我们只需要求出最小生成树,然后通过树上倍增的方式,每次询问u
和v
路径上的最大值即可。
代码连接:LibreOJ136