城市问题(Floyd)
生活随笔
收集整理的這篇文章主要介紹了
城市问题(Floyd)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Description
設有n個城市,依次編號為0,1,2,……,n-1(n<=100),另外有一個文件保存n個城市之間的距離(每座城市之間的距離都小于等于1000)。當兩城市之間的距離等于-1時,表示這兩個城市沒有直接連接。求指定城市k到每一個城市i(0<=I,k<=n-1)的最短距離。
Input
第一行有兩個整數n和k,中間用空格隔開;以下是一個NxN的矩陣,表示城市間的距離,數據間用空格隔開。
Output
輸出指定城市k到各城市間的距離(從第0座城市開始,中間用空格分開)
Sample Input
3 1 0 3 1 3 0 2 1 2 0
Sample Output
3 0 2
分析
輸入時,如果a[i,j]=-1 那么就a[i,j]=maxlongint
用Floyd算法,算出每個點之間的最短距離
再一個循環輸出
程序如下:
- var n,s,i,j,k:longint; a:array[-1..200,-1..200]of longint; beginreadln(n,s);for i:=0 to n-1 dofor j:=0 to n-1 dobeginread(a[i,j]);if a[i,j]=-1 then a[i,j]:=maxlongint;end;for k:=0 to n-1 dofor i:=0 to n-1 dofor j:=0 to n-1 doif (a[i,k]+a[k,j]<a[i,j])and(a[i,k]<>maxlongint)and(a[k,j]<>maxlongint) then a[i,j]:=a[i,k]+a[k,j];for i:=0 to n-1 dowrite(a[s,i],' '); end.
轉載于:https://www.cnblogs.com/YYC-0304/p/9500144.html
總結
以上是生活随笔為你收集整理的城市问题(Floyd)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 商店选址问题(Floyd)
- 下一篇: 最短路径问题(dijkstra)