ZCMU 1398(spfa最短路徑)

2021-09-24 10:17:03 字數 1072 閱讀 5241

1398: 工程

description

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

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

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

spfa

code:

#include #include#include#include#define inf 0x3f3f3f3f

using namespace std;

int map[205][205];

int vis[205];

int dis[205];

int n,m;

void init()}}

}return dis[e];

}int main()

int s,t;

scanf("%d %d",&s,&t);

int ans=spfa(s,t);

if(ans!=inf)

printf("%d\n",ans);

else

printf("-1\n");

}return 0;

}

ZCMU 1398工程 弗洛伊德法求最短路徑

time limit 1 sec memory limit 128 mb submit 198 solved 109 submit status web board 某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,...

最短路 spfa (一)

最短路 spfa 首先建立起始點a到其餘各點的 最短路徑 首先源點a入隊,當佇列非空時 隊首元素a 出隊,對以a為起始點的所有邊的終點依次進行鬆弛操作 此處有b,c,d三個點 此時路徑 狀態為 在鬆弛時三個點的最短路徑估值變小了,而這些點佇列中都沒有出現,這些點 需要入隊,此時,佇列中新入隊了三個結...

SPFA 最短路問題

簡單的說,spfa就是通過佇列 來實現的求最短路徑的演算法 首先,要用到乙個鄰接表來儲存各頂點之間的關係 包括起點u,終點v,以及u,v之間的權值w 然後就是構造spfa函式 第一步 對dis 用來存從源點到各頂點的最短距離 初始化為 inf 乙個很大的數例如0x3f3f3f3f 對 vis 陣列初...