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