日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

城市问题(Floyd)

發布時間:2025/3/15 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 城市问题(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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。