第一次做時間這麼嚴格的題目
1.dfs超時
2.並查集判斷是否連通,prim求最小生成樹,超時
3.並查集判斷是否連通,kruskal求最小生成樹,超時
4.並查集+路徑壓縮判斷是否連通,kruskal求最小生成樹,ac
1 #include2 #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條邊才能全部連通 ...