洛谷 P1339 USACO09OCT 熱浪

2021-10-02 18:41:17 字數 1153 閱讀 9065

有乙個 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...