dijkstra優化模板 單源最短路模板

2021-09-10 20:12:04 字數 648 閱讀 7649

#include#include//很重要

using namespace std;

vectorg[100005];//記錄乙個點和那些邊相連

vectorl[100005];//記錄乙個點和別的邊的長度

int d[100005];//起點到每一點的距離

bool done[100005];//標記是否走過

const int inf=2147483647;

struct edge

for(int i=1;i<=n;i++)

d[s]=0;//起點至0

edge h;

h.i=s;

h.v=0;

q.push(h);//壓入起點的編號和數值

while(!q.empty())//若佇列不為空

done[x.i]=true;

for(int j=0;jd[x.i]+l[x.i][j])//如果情況更優}}

for(int i=1;i<=n;i++)

return 0;

}

ps:很多人會認為需更改佇列數值(我不會),拜託,這是優先佇列

ps:queue標頭檔案可以讓你在打出乙個佇列s.時,會彈出很多函式(佇列用的)

vector

單源最短路模板(dijkstra)

單源最短路 dijkstra演算法及堆優化 弱化版題目鏈結 n 2 dijkstra模板 1 include2 include3 include4 include5 using namespace std 6int i,j,n,m,s,dis 10010 7 bool v 10010 8 struc...

Dijkstra求單源最短路模板

1 include2 include3 include4 include5 include6 define max 99999997 8usingnamespacestd 9 pair 的first 儲存的為最短距離,second儲存的為頂點編號 10 typedefpair int,int p 對...

單源最短路徑 模板 dijkstra

p4779 模板 單源最短路徑 標準版 原題鏈結 鏈式前向星 題目描述 給定乙個 n個點,m條有向邊的帶非負權圖,請你計算從 s 出發,到每個點的距離。資料保證你能從 s 出發到任意點。輸入格式 第一行為三個正整數 n,m,s。第二行起 m 行,每行三個非負整數 ui,vi,wi表示從ui到 vi ...