單源最短路徑 dijikstra

2021-09-13 03:42:58 字數 861 閱讀 4546

//p4779【模板】單源最短路徑(標準版)

//適用於不含負權值路徑的圖

#include

#include

#include

#include

using

namespace std;

#define maxn 100005

#define maxm 500005

#define inf 2147483647

int n,m,s;

int edge_num=0;

int head[maxn]=;

bool used[maxn]=;

int dis[maxn]=;

struct eg

edge[maxm]

;//鏈式向前星儲存

void

scanff()

for(

int i=

1;i<=n;i++

) dis[i]

=inf;

dis[s]=0

;}struct node};

//過載小於號。注意不要忘記標頭檔案cstdio!

priority_queue pq;

//堆優化

void

dijkstra()

);//將原點推入堆中

while

(!pq.

empty()

));}

}}}for

(int i=

1;i<=n;i++

) cout<<<

" ";

}int

main()

單源最短路徑

include define max 999 define maxverts 10 typedef struct graph void chushi graph g void dij graph int key,int int int main for i 1 i g.numverts i dij ...

單源最短路徑

最優子結構 最短路徑的子路徑也是最短路徑,動態規劃和貪心演算法的乙個重要指標。環路 一條最短路徑不可能包含環路 1 環路權重為負,如果有一條環路權重為負,則不存在最短路徑 2 環路權重為零,如果包含該環路,則將該環路去掉即可 3 環路權重為正,去掉改環路可以得到更短的路徑,因此不可能是最短路徑 最短...

單源最短路徑

單源最短路徑問題,即在圖中求出給定頂點到其他任一頂點的最短路徑。1.最短路徑的最優子結構性質 該性質描述為 如果p i,j 是從頂點i到j的最短路徑,k和s是這條路徑上的乙個中間頂點,那麼p k,s 必定是從k到s的最短路徑。證明 假設p i,j 是從頂點i到j的最短路徑,則有p i,j p i,k...