去你大爺的dijkstra演算法
沒忍住,學了好久終於解決了樸素版的dijkstra演算法
水題鏈結 最短路徑問題
#include
#include
#include
using
namespace std;
int n,m;
const
int n=
510;
int dis[n]
;//某點到n的距離;
int g[n]
[n];
int a,b,c;
bool is[n]
;int
ddd(
int n)
if(dis[n]
==0x3f3f3f3f
)return-1
;//不存在最短路徑;
return dis[n]
;//找到最短路徑,並且最短路徑為dis[n]
}int
main()
int t=
ddd(n)
;printf
("%d"
,t);
return0;
}
樸素Dijkstra演算法
dijkstra演算法 dijkstra演算法算是貪心思想實現的,首先把起點到所有點的距離存下來找個最短的,然後鬆弛一次再找出最短的,所謂的鬆弛操作就是,遍歷一遍看通過剛剛找到的距離最短的點作為中轉站會不會更近,如果更近了就更新距離,這樣把所有的點找遍之後就存下了起點到其他所有點的最短距離。問題引入...
Dijkstra演算法求最短路 樸素版
圖論中求最短路的演算法有很多,這裡使用一道模板題來介紹可以求單源最短路的dijkstra演算法 acwing 849.dijkstra求最短路 i 求乙個源點到 除了這個點之外其他所有的點 的最短距離,不需要記錄每條路徑 這題一直困惑著我的是,為什麼一開始找的最小的最短距離就是確定的最短距離?想了好...
Dijkstra求最短路 I(樸素演算法)
給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示1號點到n號...