題目鏈接:LibreOJ 136. 最小瓶頸路
題目描述:
給定一張無向圖,詢問兩個結點之間的最小瓶頸路。
u
和v
兩個結點之間最小瓶頸路指的是u
和v
的每條路徑中經過的最大邊權的最小值。
題解:
給出結論:無向圖的最小瓶頸路與其最小生成樹上兩個結點之間最小瓶頸路值相等。
上面結論的證明我們可以參考Krusca
求解最小生成樹的過程,對于當前可以加入的一條邊(u, v, w)
,u
和v
之間的最小瓶頸路當前這條邊,因為在之前的過程中經過權重比w
小的邊不能使u
和v
連通,根據這個過程我們便可以發現第一次讓u
和v
相連的邊的權重就是最小瓶頸路(這也是為什么Kruscal
重構樹可以求最小瓶頸路的原理),而不難發現這個值也就是u
和v
路徑上的邊權最大值。
有了上述的結論,我們只需要求出最小生成樹,然后通過樹上倍增的方式,每次詢問u
和v
路徑上的最大值即可。
代碼連接:LibreOJ136