#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 ...