Floyd最短路徑演算法

2021-09-01 18:32:48 字數 954 閱讀 5601

1398: 工程

time limit: 1 sec memory limit: 128 mb

[submit][status][web board]

description

某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。

現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。

input

本題目包含多組資料,請處理到檔案結束。

每組資料第一行包含兩個正整數n和m(0output

對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從s到t的路線,就輸出-1.

sample input

3 30 1 1

0 2 3

1 2 1

0 23 1

0 1 1

1 2sample output2-1

ac**~:

#include #define inf 99999999

//inf相當於『無窮大』,也可以巨集定義為0x3f3f3f3f,如果起點不能到終點則它的值就是inf(定義多大看題意)

long long r[202][202];

int main()

}int a,b,x,t1,t2;

for(int i = 0; i < m; i++)

scanf("%d%d",&t1,&t2);

for(int k = 0; k < n; k++)//這三個for為核心**}}

if(r[t1][t2]!=inf)

printf("%lld\n",r[t1][t2]);

else

printf("-1\n");

}return 0;

}

floyd演算法(最短路徑)

最短路徑 描述 已知乙個城市的交通路線,經常要求從某一點出發到各地方的最短路徑。例如有如下交通圖 則從a出發到各點的最短路徑分別為 b 0c 10 d 50 e 30 f 60 輸入 輸入只有乙個用例,第一行包括若干個字元,分別表示各頂點的名稱,接下來是乙個非負的整數方陣,方陣維數等於頂點數,其中0...

最短路徑Floyd演算法

前面我們介紹了單源最短路徑問題的dijkstra演算法,dijkstra演算法雖然有比較好看的複雜度,但其對於有負權值的圖來講,就顯得力不從心了,下面我們來介紹另一種更為廣泛的最短路徑問題的解法 floyd演算法 floyd演算法 弗洛伊德演算法 的原理基於動態規劃,比如要找出從a到b的經過這k個點...

Floyd演算法 最短路徑

floyd演算法思想 floyd演算法用於求每一對頂點之間的最短路徑問題 給定帶權有向圖g v,e 對任意頂點vi和vj,求頂點vi到頂點vj的最短路徑。floyd演算法的基本思想是 假設從vi到vj的弧 若不存在從vi到vj的弧,則權值為 是最短路徑,然後進行n次試探。首先比較vivj和viv0v...