暢通工程續 HDU 1874 迪傑特斯拉2

2021-09-10 14:50:30 字數 1063 閱讀 4199

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

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

input

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

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

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

sample input

3 3

0 1 1

0 2 3

1 2 1

0 23 1

0 1 1

1 2

sample output

2

-1

判斷是不是能到,有規定的起點和終點的,我們就不能單單的從第乙個點去搜尋權值最小的,畢竟會有判斷能不能到,可能會有乙個情況,就是從起點(就是第乙個點)可以到達終點,但是規定起點(輸入的這個起點)可能到不了,(畢竟也是從無限的wa中走出來的),所以我們就從這個規定起點開始走,也是以前的套路,標記一套的。最後判斷能不能到達的,就是看這個d[ ]陣列值是不是標記的那個值;

**:

#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 這種題肯定是不行的。因為這個數和其他數相加...