最短路徑C語言

2021-09-22 18:07:50 字數 807 閱讀 3482

問題描述

現已知有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號城市到其他城市的最短路,如果無法到達,輸出...