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