題解 P1111 修復公路

2022-05-21 08:51:12 字數 459 閱讀 5199

求該圖已聯通時所用最小時間。

最小生成樹

krusal演算法

先把所有邊按修復時間從大到小排序,

再每次取出權值最小的邊,如果它的兩個端點$u,v$已經聯通了就跳過,

否則就把這條邊加入圖中,並且把$u,v$加入到同乙個集合中。

最後,如果取了n-1條邊,則說明該圖已聯通,否則該圖不能聯通。所有的路,它們是,同時修的,(第一次做的時候以為一次只能修一條)

所以我們只需要求最後加入的邊用時多少就好了

#include#includeusing namespace std;

int n,prt[1005],m;

struct road

if(cnt==n-1)//如果沒有取出足夠形成樹的邊

cout

cout<<"-1"

}

P1111 修復公路

a地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數n,和公路數m,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公路連成...

P1111 修復公路

a 地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數 n 和公路數 m 公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠通車,即最早什麼時候任意兩條村莊都存在至少一條修復完成的道路 可以由多條公...

P1111 修復公路

題目提供者該使用者不存在 標籤並查集 難度普及 提高 提交該題 討論 題解記錄 a地區在 過後,連線所有村莊的公路都造成了損壞而無法通車。派人修復這些公路。給出a地區的村莊數n,和公路數m,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠...