HDU 1879 繼續暢通工程 最小生成樹

2022-05-31 01:36:08 字數 1120 閱讀 4472

省**「暢通工程」的目標是使全省任何兩個村莊間都可以實現公路交通(但不一定有直接的公路相連,只要能間接通過公路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建道路的費用,以及該道路是否已經修通的狀態。現請你編寫程式,計算出全省暢通需要的最低成本。

測試輸入包含若干測試用例。每個測試用例的第1行給出村莊數目n ( 1< n < 100 );隨後的 n(n-1)/2 行對應村莊間道路的成本及修建狀態,每行給4個正整數,分別是兩個村莊的編號(從1編號到n),此兩村莊間道路的成本,以及修建狀態:1表示已建,0表示未建。

當n為0時輸入結束。

每個測試用例的輸出佔一行,輸出全省暢通需要的最低成本。

3

1 2 1 0

1 3 2 0

2 3 4 0

31 2 1 0

1 3 2 0

2 3 4 1

31 2 1 0

1 3 2 1

2 3 4 1

0

3

10

zju

浙大計算機研究生複試上機考試-2023年

如題。最小生成樹

最小生成樹裸題。把已建的道路的成本設為 0,跑一遍最小生成樹即可。

#include using namespace std;

const int maxn = 1e4 + 10;

struct edge edge[maxn];

int far[maxn];

void init(int n)

int find(int x)

int cmp(edge a, edge b)

int kruskal(int n, int m)

}return ans;

}int main()

}cout << kruskal(n, m) << endl;

}return 0;

}

繼續暢通工程 hdu 1879

include 2243673 2010 03 24 20 56 41 accepted 1879 375ms 320k 1070 b c 悔惜晟 include 修改了三次終於ac,為何就是 的效率不高 include include using namespace std int s 4991 ...

hdu 1879 繼續暢通工程

include include include typedef structedge edge input 5050 int cost 5050 int parent 5050 int cmp const void a,const void b int root int n int kruskal ...

HDU 1879 繼續暢通工程

和前幾個最小生成樹有點不一樣的地方就是 在kruskal裡面,要先把已經修通的路排在前面 不知道這樣是不是多此一舉呢 再按照每條路的價值從小到大排序 自定義排序規則就是 呼叫c 的sort int cmp const e a,const e b 將每條邊存在結構體edge裡面 struct e ed...