hdu 1874 暢通工程續(最短路)

2022-05-24 10:03:08 字數 1091 閱讀 1108

time limit1000 ms

memory limit32768 kb

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

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

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

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

2

-1

題解 可以用dijkstra,就是注意一下兩個點之間可能會有多條邊,在輸入的時候權值保留為最短的那條邊即可

#include#include

#include

#include

#include

#include

#include

using

namespace

std;

#define pi 3.14159265358979323846264338327950

const

int x=220

;const

int inf=0x3f3f3f3f

;int

cost[x][x],n,m;

intd[x];

bool

vis[x];

void dijkstra(int

f ) vis[u]=1

;

for(int j=1; j<=n; ++j)

if(!vis[j])

}}int

main()

scanf(

"%d %d

",&a,&b);

dijkstra(a+1

);

if(d[b+1]>=inf)

printf(

"-1\n");

else

printf(

"%d\n

",d[b+1

]);

}}

hdu1874 暢通工程續 (最短路)

已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。經典的單源 最短路 用dijkstra,這裡要注意的是有重邊,取最小的那個。已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。經典的單源 最短路 用dijkstra,這裡要注意的是有重邊,取最小的那個。include in...

HDU 1874 暢通工程續(最短路)

problem description 某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距...

hdu1874 暢通工程續(最短路)

思路 最短路裸題 includeusing namespace std const int maxn 205 const int inf 1e9 int n,m vector e maxn int d maxn void init int main while scanf d d n,m eof i...