HDU 1874 最短路徑

2021-06-17 19:15:32 字數 2023 閱讀 6955

problem description

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

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

input

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

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

output

對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從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

模板模板 還是模板,,

#include using namespace std;

const int maxn=555; //注意陣列下標

const int inf=9999999;

int map[maxn][maxn];

int dis[maxn];//存放當前源點v到其他點i的最短距離

bool vis[maxn];

int n,m;//頂點數

int start,endd;//起點終點

void dijkstra(int x)//v為源點

} if(dis[endd]==inf)

printf("-1\n");

else

coutmap[a][b]=map[b][a]=c;

} scanf("%d%d",&start,&endd);

dijkstra(start);

} return 0;

}#include #include using namespace std;

const int inf=9999999;

const int maxn=5555;

int map[maxn][maxn];//鄰接矩陣

int n,m,g_m;//n為頂點數

int vis[maxn];//判斷頂點是否在佇列中.可多次入隊

int dis[maxn];//最短距離

int cnt[maxn];//作用:判斷負權值

int start,endd;//起點終點

int i,j;

bool spfa()//spfa演算法

}} }

return true;

}int main()

scanf("%d%d",&start,&endd);

start++;

bool flag=spfa();

if(dis[endd+1]==inf)

printf("-1\n");

else

printf("%d\n",dis[endd+1]);

} return 0;

}#include using namespace std;

const int maxn=5555;

const int inf=9999999;

struct edge

g[maxn];

int n,m,i,j;

int g_m;

int start,endd;

int dis[maxn];

bool bellman_ford()

} if(flag==false)

break;

} for(j=0;jdis[s]+ss)

return false;

} return true;

}int main()

{ int s,e,ss;

while(scanf("%d%d",&n,&m)!=eof)

{ g_m=0;

for(i=0;i

hdu1874 暢通工程續(最短路徑)

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

hdu1874 暢通工程續 (最短路)

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

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

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