T83722 女王搬水泥(最小生成樹)

2021-09-26 02:40:33 字數 1181 閱讀 7051

「傳說有個魔仙堡,有個女王不得了」,但是再不得了的女王也有為難的時候。在某年某月某日某魔仙堡發生了**???是的沒錯,是**。**的到來是女王sama忽然生起來了體驗普通人類生活的心思(????),又是她決定以身作則,帶領魔仙堡的人民搬水泥(劃重點!!!),我們身嬌體柔的女王sama於是就操作了起來,但是由於政務繁忙,她時間又不是很多,於是懶惰的她想知道最快什麼時候可以跑路。

給出一共有的蘑菇屋(???)站點n,和石子路m,路是雙向的。接下來m行每行三個數,告訴哪兩個蘑菇屋之間的路在什麼時間修好,問最早什麼時候任意兩個站點之間可以通車,即最早什麼時候任意兩個站點都存在至少一條修復完成的道路。

第一行n,k 下面k行,數字分別是兩個蘑菇屋和修復時間,前兩個數是蘑菇屋的標號,可以在時間time時穿梭於這兩個蘑菇屋。

到了最後還沒有辦法在任意兩個蘑菇屋中穿梭的話,那就輸出-1,可以的話輸出最早什麼時候任意兩個蘑菇屋能夠穿梭。

4 41 2 6

1 3 4

1 4 5

4 2 3

n <= 1000, k <= 100000 a <=n , b <= n , time <=100000

一道最短生成樹,把求路徑和改為求每次最大的時間即可。

#include

#include

#include

#include

#include

using namespace std;

const

int n =

2e5;

typedef pair<

int,

int> p;

int bcj[

5005];

int n, m, cnt, ans;

struct node

} edge[

200005];

intfind

(int x)

void

kruskal()

}int

main()

kruskal()

;if(cnt==n-1)

printf

("%d\n"

, ans)

;else

printf

("-1\n");

return0;

}