求該圖已聯通時所用最小時間。
最小生成樹
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,公路是雙向的。並告訴你每條公路的連著哪兩個村莊,並告訴你什麼時候能修完這條公路。問最早什麼時候任意兩個村莊能夠...