某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。
現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。
input
本題目包含多組資料,請處理到檔案結束。
每組資料第一行包含兩個正整數n和m(0output
對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從s到t的路線,就輸出-1.
sample input
3 3sample output0 1 1
0 2 3
1 2 1
0 23 1
0 1 1
1 2
2判斷是不是能到,有規定的起點和終點的,我們就不能單單的從第乙個點去搜尋權值最小的,畢竟會有判斷能不能到,可能會有乙個情況,就是從起點(就是第乙個點)可以到達終點,但是規定起點(輸入的這個起點)可能到不了,(畢竟也是從無限的wa中走出來的),所以我們就從這個規定起點開始走,也是以前的套路,標記一套的。最後判斷能不能到達的,就是看這個d[ ]陣列值是不是標記的那個值;-1
**:
#include#include#include#includeconst int maxn=1005;
typedef long long ll;
using namespace std;
int maap[maxn][maxn];
int d[maxn];
int vis[maxn];
const int inf=9999999;
int main()
if(minv==inf)
vis[pos]=1;
for(j=0;jminv+maap[pos][j])
d[j]=minv+maap[pos][j];}}
if(d[y]!=inf)
cout
cout<<"-1"
}
暢通工程續 HDU 1874 (迪傑斯特拉)
某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。input 本題目包含多組資料,請處...
HDU 1874 暢通工程續(迪傑斯特拉)
某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。input本題目包含多組資料,請處理...
hdu 1874 暢通工程續
題目 就是裸的單源最短路。做的時候還是遇到了一些錯誤。比如題目上說的,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。應該在輸入的時候就要更新a b的最短距離。還有一開始開了個n 0x7fffffff 這種題肯定是不行的。因為這個數和其他數相加...