7 1 暢通工程之區域性最小花費問題

2021-08-10 05:59:25 字數 1340 閱讀 8300

某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出「暢通工程」的目標:使整個地區任何兩個城鎮間都可以實現快速交通(但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可)。現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現請你編寫程式,計算出全地區暢通需要的最低成本。

輸入格式:

輸入的第一行給出村莊數目n (1≤n≤100);隨後的n(n−1)/2行對應村莊間道路的成本及修建狀態:每行給出4個正整數,分別是兩個村莊的編號(從1編號到n),此兩村莊間道路的成本,以及修建狀態 — 1表示已建,0表示未建。

輸出格式:

輸出全省暢通需要的最低成本。

輸入樣例:

4

1 2 1 1

1 3 4 0

1 4 1 1

2 3 3 0

2 4 2 1

3 4 5 0

輸出樣例:

3
**:

#include

#include

#define max 101

#define infinity 65535

bool is_mark[max];//標記是否合併

int pathmatrirx[max][max];//所有路徑長

int dist[max];//當前連通量與其他地點的最短距離

int main()

int arcs = numofvertex*(numofvertex-1)/2;

//輸入邊即道路修建成本

for(int i = 0; i < arcs; i++)

//否則,記錄修建成本

else

}//初始化dist表

for(int i = 0; i < numofvertex; i++)

//標記第乙個點,且第乙個點到自身的距離更改為0

is_mark[0] = 0;

dist[0] = 0;

intsum = 0;

for(int i = 0; i < numofvertex; i++)

}//合併該點(標記該點)

is_mark[order] = true;

//每合併乙個點,修改其他點到目前連通量的最小路徑

if(order != -1) }}

}printf("%d\n",sum);

return

0;}

7 1 暢通工程之區域性最小花費問題(35 分)

某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標 使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現請你編寫...

7 1 暢通工程之區域性最小花費問題(35 分)

某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標 使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快速路可達即可 現得到城鎮道路統計表,表中列出了任意兩城鎮間修建快速路的費用,以及該道路是否已經修通的狀態。現請你編寫...

PTA 暢通工程之區域性最小花費問題

碎碎念1.pta 資料結構與演算法題目集 中文 程式設計題 7 50 暢通工程之區域性最小花費問題 35分 2.某地區經過對城鎮交通狀況的調查,得到現有城鎮間快速道路的統計資料,並提出 暢通工程 的目標 使整個地區任何兩個城鎮間都可以實現快速交通 但不一定有直接的快速道路相連,只要互相間接通過快速路...