PTA 資料結構與演算法 7 10 公路村村通

2021-09-23 06:17:18 字數 1405 閱讀 5694

如有不對,不吝賜教

進入正題:

現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。

輸入格式:

輸入資料報括城鎮數目正整數n(≤1000)和候選道路數目m(≤3n);隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。為簡單起見,城鎮從1到n編號。

輸出格式:

輸出村村通需要的最低成本。如果輸入資料不足以保證暢通,則輸出−1,表示需要建設更多公路。

輸入樣例:

6 15

1 2 5

1 3 3

1 4 7

1 5 4

1 6 2

2 3 4

2 4 6

2 5 2

2 6 6

3 4 6

3 5 1

3 6 1

4 5 10

4 6 8

5 6 3

輸出樣例:

12這道題就是屬於最小生成樹的演算法,一般有kruskal演算法和prim演算法,也還有sollin演算法,boruvka演算法等,可以去了解下,我使用prim演算法

prim演算法核心:

for

(j=1

;j1;j++)}

if(-1

==index)

break

;else

}

關鍵就是維護乙個各個節點到當前生成樹的距離,每次選取最短的那個節點以及連線的邊給加進來。

下面上** :

#include

#define inf 1000000

intmain

(void

)for

(i=0

;i)//讀入資料

i=1;

count=1;

//記錄當前生成樹的節點個數

cost=0;

//花費

while

(count

(-1==index)

break

;else}if

(count==n)

printf

("%d"

,cost)

;else

printf

("-1");

return0;

}

結果(注:測試的時候忘改編譯器了,不過沒啥影響):

資料結構與演算法 7 10 公路村村通 30分

現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入格式 輸入資料報括城鎮數目正整數n 1000 和候選道路數目m 3n 隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。...

PTA7 10 公路村村通

如下 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入資料報括城鎮數目正整數n 1000 和候選道路數目m 3n 隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。為簡...

資料結構 基礎練習 7 10 公路村村通

點此鏈結1 可參考課本 高等教育出版社 陳越 資料結構 p225中關於prim演算法的描述解題。本題相對於課本描述的演算法來說,不需要考慮 父節點 parent 只需要考慮乙個總的wpl就行。file road connect every village.cpp author your name y...