九度 1347 孤島連通工程

2022-08-04 18:33:09 字數 813 閱讀 5153

第一次做時間這麼嚴格的題目

1.dfs超時

2.並查集判斷是否連通,prim求最小生成樹,超時

3.並查集判斷是否連通,kruskal求最小生成樹,超時

4.並查集+路徑壓縮判斷是否連通,kruskal求最小生成樹,ac

1 #include 

2 #include

3 #include

4 #include

5 #include

6using

namespace std;78

int father[1002];910

int n,m;

11struct edge;

14bool cmp(struct edge a,struct edge b)

15 18

struct edge e[10002];

19int get_father(int n)

20 27 }

2829

int main()

30 37

for(i=1;i<=m;i++)

40 sort(e+1,e+m+1,cmp);

41int cost=0;

42for(i=1;i<=m&&n>1;i++)

50 }

51if(n==1)

52 printf("

%d\n

",cost);

53else printf("

no\n

");54 }

55 }

九度oj 題目1347 孤島連通工程

題目描述 現在有孤島n個,孤島從1開始標序一直到n,有道路m條 道路是雙向的,如果有多條道路連通島嶼i,j則選擇最短的那條 請你求出能夠讓所有孤島都連通的最小道路總長度。輸入 資料有多組輸入。每組第一行輸入n 1 n 1000 m 0 m 10000 接著m行,每行輸入一條道路i j d 0 d 1...

九度 1012 暢通工程

題目描述 某省調查城鎮交通狀況,得到現有城鎮道路統計表,表中列出了每條道路直接連通的城鎮。省 暢通工程 的目標是使全省任何兩個城鎮間都可以實現交通 但不一定有直接的道路相連,只要互相間接通過道路可達即可 問最少還需要建設多少條道路?輸入測試輸入包含若干測試用例。每個測試用例的第1行給出兩個正整數,分...

九度 題目1012 暢通工程

這題我是以連通域來做的,n個點至少需要n 1個邊才能連通。如果形成迴路,則相當於有這條邊浪費了,沒有任何價值。最終至少還需要多少邊才能把所有的城鎮聯通,也就是求剩下的孤立的點和連通域之間還需要幾條邊才能連通!比如 最後利用程式求得3個連通域和2個孤立的點,那麼至少需要3 2 1 5條邊才能全部連通 ...