最短路徑 解釋版本

2022-07-27 22:09:22 字數 1478 閱讀 9605

輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條路,和草兒家相鄰的城市的有s個,草兒想去的地方有d個;

接著有t行,每行有三個整數a,b,time,表示a,b城市之間的車程是time小時;(1=<(a,b)<=1000;a,b 之間可能有多條路)

接著的第t+1行有s個數,表示和草兒家相連的城市;

接著的第t+2行有d個數,表示草兒想去地方。

輸出草兒能去某個喜歡的城市的最短時間。

6 2 3

1 3 5

1 4 7

2 8 12

3 8 4

4 9 12

9 10 2

1 28 9 10

9
//

偽**#includeusing

namespace

std;

const

int maxn = 1000 + 10

;const

int inf = 0x3fffffff

;int map[maxn][maxn];//

兩點之間距離。。主要與dis比較,確定那個最短的

int t;//

路條數int s;//

城市數int d;//

想去的地方

int dis[maxn];//

最短路徑

bool used[maxn];/*

標記*/

void init()//

用於遍歷所輸入的資料

} }void

dijkstra()

} if(min_j == -1)//

min_j == -1 表示有環,應退出

used[min_j] = true;

for(j=0; j//

鬆弛操作

} }}int

main()

} for(i=0; i)

dijkstra();

int mincost =inf;

for(i=0; i)

}cout

return0;

}/*6條路 2個相鄰的城市 3個想要去的地方

1 3 5 城市1,城市3,之間花費時間5

1 4 7 城市1,城市4,之間花費時間7

2 8 12 城市1,城市3,之間花費時間12

3 8 4 城市3,城市8,之間花費時間4

4 9 12 城市4,城市9,之間花費時間12

9 10 2 城市9,城市10,之間花費時間2

1 2 與草兒家相鄰的城市1 2兩個

8 9 10 草兒想去的地方8 9 10 三個

1->3->8 花費時間為9

6 2 3

1 3 5

1 4 7

2 8 12

3 8 4

4 9 12

9 10 2

1 28 9 10

*/

Codeup最短路徑 最短路徑

n個城市,標號從0到n 1,m條道路,第k條道路 k從0開始 的長度為2 k,求編號為0的城市到其他城市的最短距離。第一行兩個正整數n 2 n 100 m m 500 表示有n個城市,m條道路,接下來m行兩個整數,表示相連的兩個城市的編號。n 1行,表示0號城市到其他城市的最短路,如果無法到達,輸出...

Codeup最短路徑 最短路徑問題

給你n個點,m條無向邊,每條邊都有長度d和花費p,給你起點s終點t,要求輸出起點到終點的最短距離及其花費,如果最短距離有多條路線,則輸出花費最少的。輸入n,m,點的編號是1 n,然後是m行,每行4個數 a,b,d,p,表示a和b之間有一條邊,且其長度為d,花費為p。最後一行是兩個數 s,t 起點s,...

最短路徑之最短路徑問題

提交 狀態 討論版 命題人 外部匯入 題目描述 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的 任務是找出從一點到另一點之間的最短路徑。輸入共n m 3行,...