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...