單源最短路徑 迪傑斯特拉演算法
1.初始化地圖,map[i][j]記錄城鎮 i,j之間最短的道路長度,
若無道路連通 ,則為極大值
2.從起始城鎮開始,用廣度優先搜尋思想,嵌入鬆弛處理演算法,
用dis[i]記錄起始城鎮到城鎮 i 的最短路徑長度;
3.答案位於dis[t],即終點t城鎮到起始城鎮的最小距離
#include#include#define inf 10000000
using namespace std;
int main()
scanf("%d%d",&s,&t);
queueq;
q.push(s);//起點入隊
for(i=0;idis[x]+map[x][i])}}
} if(dis[t]==inf)
printf("-1\n");
else
printf("%d\n",dis[t]);
} return 0;
}
Dijkstra演算法解HDU1874
dijkstra演算法是用來解決 確定起點的最短路徑問題 即已知起始結點,求最短路徑的問題。它是常用的最短路徑演算法之一。最常用的路徑演算法有 dijkstra演算法 a 演算法 bellman ford演算法 floyd warshall演算法 johnson演算法。缺陷 它一般用來解決正權,單源...
HDU1874 暢通工程(dijkstra)
某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。本題目包含多組資料,請處理到檔案結束...
HDU 1874 暢通工程續 dijkstra
坑點比較多 1.某兩點之間可能有多條通路,在跑dij時需要用距離最小的算。2.當起點和重點相等的時候,距離為0 3.點的編號從0開始。include define nmax 210 using namespace std int mp nmax nmax int dis nmax bool visi...