題目:
某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出「暢通工程」的目標,
使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快
速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。
現請你編寫程式,計算出全地區暢通需要的最低成本:
1 #include "stdio.h"2
/*3某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出「暢通工程」的目標,
4使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快
5速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。
6現請你編寫程式,計算出全地區暢通需要的最低成本:
7輸入格式:89
輸入的第一行給出村莊數目nn(1\le n \le 1001≤n≤100);隨後的n(n-1)/2n(n?1)/2行對應村莊間道路的成本及修建狀態:
10每行給出4個正整數,分別是兩個村莊的編號(從1編號到nn),此兩村莊間道路的成本,以及修建狀態 — 1表示已建,0表示未建。
11輸出格式:
1213
輸出全省暢通需要的最低成本。
14輸入樣例:
1516417
1 2 1 1
181 3 4 0
191 4 1 1
202 3 3 0
212 4 2 1
223 4 5 0
23輸出樣例:
2425326
*/27
#define max 101
28#define infinity 10000 //
表示極大值
29//
prim演算法從頂點入手
30struct
edgeclosedge[max];//
輔助陣列,記錄從u到v-u具有最小代價的邊
34void minspantree_prime(int g[max][max] ,int
n)3549}
50 printf("
實現全地區暢通需要的最低成本的道路有:\n");
51for(i=1;i)
52 60}
61for( j=1;j<=n;j++)
62
67 sum +=closedge[k].lowcost;
68 printf("
(%d,%d)
",closedge[k].adjvex,k);//
輸出最小邊
69 closedge[k].lowcost = -1;//
將頂點k加入集合u中
70for( j=1;j<=n;j++)
71 77}
7879
}80 printf("
\n最低成本為:%d
",sum);81}
8283
intmain()94}
95for( i=0;i)
9699 scanf("
%d",&n);
100 m = n*(n-1)/2
;101
for( i=0;i)
102113
minspantree_prime(g,n);
114return0;
115 }
資料結構與演算法課程設計 Prim演算法
題目 某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標,使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快 速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現...
資料結構與演算法課程設計
題目 某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標,使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快 速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現...
資料結構課程設計
資料結構課程設計 include define n 30 include include includeusing namespace std struct node typedef node phone,mingzi node hashnumble node hashname int hash1 ...