樸素版的dijkstra演算法

2021-10-22 02:01:21 字數 621 閱讀 9732

去你大爺的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號...