有乙個 n 個點 m 條邊的無向圖,請求出從 s 到 t 的最短路長度
簡單的無向圖最短路問題,採用堆優化的dijkstra
dijkstra:初始到所有點的距離標記為很大很大,兩個集合:已發現和未發現。
將起點距離標記為0。
之後,每次從未發現的節點集合中挑選距離起點最近的
(單源最短路)放入已發現的節點集合,並且更新其相鄰節點的單源距離。
如此往復,每次更新乙個節點。
堆優化了紅字部分,在每次更新的時候將新加入的邊放入乙個小根堆,所以每次取出的都是邊最小的,對於取出已經更新的邊,用vis來跳過
#include
"cstdlib"
#include
#include
#include
#include
using
namespace std;
#define inf 2147483647
vectorint,
int>
>v[
2505];
int d[
2505];
int vis[
2505];
struct heapnode
//構造方法
heapnode()
bool
operator
<
(const heapnode& rhs)
const};
priority_queuep;
intmain()
for(
int i =
1;i <= n;i++
)d[i]
= inf;
d[s]=0
; p.
push
(heapnode
(s, d[s]))
;//從s點開始
register
int x, temp;
register heapnode hn;
while
(!p.
empty()
)//每一次,從未選的集合中,挑選dis最小的乙個點加入已選集合,並更新其相鄰節點}}
cout << d[t]
;return0;
}
洛谷P1339 熱浪
題目提供者yeszy 標籤圖論福建省歷屆夏令營 難度普及 提高 提交該題 討論 題解 記錄 德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!他們的德克薩斯長角牛吃起來不錯,可是他們並不是很擅長生產富含奶油的乳製品。farmer john此時以先天下之憂而憂,後天下之樂而樂的精神,身先士卒地承擔起向德...
洛谷P1339 熱浪
德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!他們的德克薩斯長角牛吃起來不錯,可是他們並不是 很擅長生產富含奶油的乳製品。farmer john此時以先天下之憂而憂,後天下之樂而樂的精神,身先士卒地承擔起向德克薩斯運送大量的營養冰涼的牛奶的重任,以減輕德克薩斯人忍受酷暑的痛苦。fj已經研究過可以把...
洛谷P1339 熱浪 最短路
題目 題意 給定一張圖,問起點到終點的最短路。思路 dijkstra板子題。很久沒有寫最短路了。總結一下dijkstra的步驟吧。d陣列用於表示當前最短路徑,vis陣列用於標記當前點是否已經在最短路集合中了。每次找到乙個d最小的節點,表示他已經無法更短了,把他加入集合,用他去更新其他的節點。一共做n...