問題描述
現已知有n(n<=10)個城市m(m<=30)條路,保證每個城市之間有路,單向到達,每個城市之間的路程不一樣,求任意兩個城市之間的最短路程
樣例輸入
4 81 2 2
1 3 6
1 4 4
2 3 3
3 1 7
3 4 1
4 1 5
4 3 12
樣例輸出
0 2 5 4
9 0 3 4
6 8 0 1
5 7 10 0
程式**:
#include
int a[
200]
[200];
intmain()
//讀入每個城市之間的距離
for(i=
1;i<=m;i++
)for
(k=1
;k<=n;k++
)for
(i=1
;i<=n;i++
)for
(j=1
;j<=n;j++)if
(a[i]
[j]>a[i]
[k]+a[k]
[j])
//若從i到j的距離比從i到k再從k到j的距離大就把原來的距離進行更新
a[i]
[j]=a[i]
[k]+a[k]
[j];
//輸出各個城市之間最短的路程
for(i=
1;i<=n;i++
)return0;
}
最短路徑(C )
描述 給出乙個有向圖g v,e 和乙個源點v0 v,請寫乙個程式輸出v0和圖g中其它頂點的最短路徑。只要所有的有向環權值和都是正的,我們就允許圖的邊有負值。頂點的標號從1到n n為圖g的頂點數 格式輸入格式 第1行 乙個正數n 2 n 80 表示圖g的頂點總數。第2行 乙個整數,表示源點v0 v0 ...
最短路徑 C語言實現
dijkstra演算法具體步驟 1 初始時,s集合只包含源點 s u集合包含剩餘的點,源點v到自己的距離為0,到其他頂點的距離均為無窮大 表示不可達 以此更新dist陣列,除dist v 0之外,其餘全為無窮大 2 在dist陣列中,找到目前在u集合中且使得源點v到其距離最小的頂點k,將該頂點加入u...
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號城市到其他城市的最短路,如果無法到達,輸出...