5481335499920981350在這裡我們用到了優先佇列,我本想自己寫乙個堆,後來看到用的是pii,太麻煩了,開三個陣列還有很多操作,我就用優先佇列了。
#include
#include
#include
#include
using
namespace std;
const
int n=
1e6+10;
typedef pair<
int,
int> pii;
int e[n]
,d[n]
,ne[n]
,h[n]
,idx;
int n,m;
int dist[n]
;bool s[n]
;void
add(
int a,
int b,
int c)
intdijkstra()
);while
(q.size()
));}
}if(dist[n]
==0x3f3f3f3f
)return-1
;else
return dist[n];}
intmain
(void
)
cout<<
dijkstra()
;}
850 Dijkstra求最短路 II
給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示1號點到n號...
Dijkstra求最短路
題目鏈結 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為正值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示1...
Dijkstra求最短路
題目鏈結 給定乙個n個點m條邊的有向圖,圖中可能存在重邊和自環,所有邊權均為非負值。請你求出1號點到n號點的最短距離,如果無法從1號點走到n號點,則輸出 1。輸入格式 第一行包含整數n和m。接下來m行每行包含三個整數x,y,z,表示存在一條從點x到點y的有向邊,邊長為z。輸出格式 輸出乙個整數,表示...