現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。
輸入資料報括城鎮數目正整數n(≤1000)和候選道路數目m(≤3n);隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。為簡單起見,城鎮從1到n編號。
輸出村村通需要的最低成本。如果輸入資料不足以保證暢通,則輸出−1,表示需要建設更多公路。
6151
2513
3147
1541
6223
4246
2522
6634
6351
3614
51046
8563
12
主要是建立最小生成樹,套用普利姆演算法
#include
#define maxnum 1003
#define max 65535
int arcs[maxnum]
[maxnum]
;int vex, arc;
void
create()
//初始化+建立無向圖
int n, m, v;
for(
int i =
1; i <= arc; i++)}
intprim()
//普利姆演算法
for(i =
2; i <= vex; i++
) j++;}
if(k ==0)
return-1
; cost = cost + min;
v[k]=0
;for
(int j =
2; j <= vex; j++)}
}return cost;
}int
main()
PTA 公路村村通
7 10 公路村村通 30分 現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入格式 輸入資料報括城鎮數目正整數n 1000 和候選道路數目m 3n 隨後的m行對應m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的...
公路村村通
公路村村通 kruscal 演算法 include include include using namespace std int per 1010 n,m struct node 結構體來儲存邊 x 5005 bool cmp node a,node b int find int x 並查集的查詢...
公路村村通
現有村落間道路的統計資料表中,列出了有可能建設成標準公路的若干條道路的成本,求使每個村落都有公路連通所需要的最低成本。輸入資料報括城鎮數目正整數 n 和候選道路數目 m 隨後的 m行對應 m條道路,每行給出3個正整數,分別是該條道路直接連通的兩個城鎮的編號以及該道路改建的預算成本。為簡單起見,城鎮從...