2018 年 7 月 19 日,某位同學在 noi day 1 t1 歸程 一題裡非常熟練地使用了乙個廣為人知的演算法求最短路。
然後呢?
100 \rightarrow 60100→60;
ag \rightarrow cuag→cu;
最終,他因此沒能與理想的大學達成契約。
小 f 衷心祝願大家不再重蹈覆轍。
給定乙個 nn 個點,mm 條有向邊的帶非負權圖,請你計算從 ss 出發,到每個點的距離。
資料保證你能從 ss 出發到任意點。
第一行為三個正整數 n, m, sn,m,s。 第二行起 mm 行,每行三個非負整數 u_i, v_i, w_iui,vi,wi,表示從 u_iui到 v_ivi有一條權值為 w_iwi的邊。
輸出一行 nn 個空格分隔的非負整數,表示 ss 到每個點的距離。
輸入 #1複製
4 6 11 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4
輸出 #1複製
0 2 4 3
樣例解釋請參考 資料隨機的模板題。
1 \leq n \leq 1000001≤n≤100000;
1 \leq m \leq 2000001≤m≤200000;
s = 1s=1;
1 \leq u_i, v_i\leq n1≤ui,vi≤n;
0 \leq w_i \leq 10 ^ 90≤wi≤109,
0 \leq \sum w_i \leq 10 ^ 90≤∑wi≤109。
#include#include#include#include#include#includeusing namespace std;int n,m,tot,s;
int head[100610],ver[1000610],edge[1000610],next[1000610],d[100610];
bool v[100610];
priority_queue> q;
int read()
if(ch=='-')
while(ch<48||ch>57)
while(ch>47&&ch<58)
return a*b;
}void add(int x,int y,int z)
void dijkstra()
v[x]=1;
for(int i=head[x];i;i=next[i])
} }}int main()
dijkstra();
for(int i=1;i<=n;i++)
return 0;
}
P4779 模板 單源最短路徑(標準版)
最短路 堆優化 dijkstra 優先佇列 複雜度 o eloge 洛谷4779 題目描述 給定乙個 n 個點,m 條有向邊的帶非負權圖,請你計算從 s 出發,到每個點的距離。資料保證能從 s 出發到任意點 輸入4 6 1 1 2 2 2 3 2 2 4 1 1 3 5 3 4 3 1 4 4 輸出...
P4779 模板 單源最短路徑(標準版)
題目入口 p4779 模板 單源最短路徑 標準版 使用 堆優化dijkstra求最短路 模版 使用模版前言 注意頂點數maxn的值 注意極大資料inf的值 include include include include include include include define maxn 3000...
P4779 模板 單源最短路徑(標準版)
單源最短路徑模板題,沒什麼好說的。然而本題卡普通spfa.昨天某位同學給我說了堆優化spfa.於是就拿來寫這道題,a了 堆優化思想就是把dis小的放在前邊,也許和slf優化差不多?然而感覺上比slf快很多 include include include include includeusing na...