description
省**「暢通工程」的目標是使全省任何兩個村莊間都可以實現公路交通(但不一定有直接的公路相連,只要能間接通過公路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建道路的費用,以及該道路是否已經修通的狀態。現請你編寫程式,計算出全省暢通需要的最低成本。
input
測試輸入包含若干測試用例。每個測試用例的第1行給出村莊數目n ( 1< n < 100 );隨後的 n(n-1)/2 行對應村莊間道路的成本及修建狀態,每行給4個正整數,分別是兩個村莊的編號(從1編號到n),此兩村莊間道路的成本,以及修建狀態:1表示已建,0表示未建。
當n為0時輸入結束。
output
每個測試用例的輸出佔一行,輸出全省暢通需要的最低成本。
sample input
31 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 sample output31
0 大意:只是加乙個是否建立的狀態,把已經建立的a[i].w賦值為0再進行排序。
#include#includeview code#include
using
namespace
std;
const
int max = 5000
;int
p[max];
struct
edgea[max];
bool
cmp(edge i,edge j)
int find(int
x)int
main()
}printf(
"%d\n
",sum);
}return0;
}
Kruskal 還是暢通工程
description 某省調查鄉村交通狀況,得到的統計表中列出了任意兩村莊間的距離。省 暢通工程 的目標是使全省任何兩個村莊間都可以實現公路交通 但不一定有直接的公路相連,只要能間接通過公路可達即可 並要求鋪設的公路總長度為最小。請計算最小的公路總長度。input 測試輸入包含若干測試用例。每個測...
王道 例11 4暢通工程(Kruskal)
在乙個無向連通圖,如果存在乙個連通子圖包含原圖所有頂點和部分邊,且子圖不存在迴路,就稱這個子圖為原圖的一顆生成樹。在帶權無向連通圖,所有生成樹中邊權的和最小那顆稱為最小生成樹。步驟如下 關鍵 int kruskal int n,int edgenumber return sum 題意 給出n個點,n...
繼續暢通工程 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 ...