Kruskal 繼續暢通工程

2022-05-03 05:24:09 字數 962 閱讀 1056

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#include

#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;

}

view code

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 ...