洛谷P1339 熱浪

2022-05-01 19:00:10 字數 1564 閱讀 5315

題目提供者yeszy

標籤圖論福建省歷屆夏令營

難度普及+/提高

提交該題 討論 題解 記錄

德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!!!他們的德克薩斯長角牛吃起來不錯,可是他們並不是很擅長生產富含奶油的乳製品。farmer john此時以先天下之憂而憂,後天下之樂而樂的精神,身先士卒地承擔起向德克薩斯運送大量的營養冰涼的牛奶的重任,以減輕德克薩斯人忍受酷暑的痛苦。

fj已經研究過可以把牛奶從威斯康星運送到德克薩斯州的路線。這些路線包括起始點和終點先一共經過t (1 <= t <= 2,500)個城鎮,方便地標號為1到t。除了起點和終點外地每個城鎮由兩條雙向道路連向至少兩個其它地城鎮。每條道路有乙個通過費用(包括油費,過路費等等)。

給定乙個地圖,包含c (1 <= c <= 6,200)條直接連線2個城鎮的道路。每條道路由道路的起點rs,終點re (1 <= rs <= t; 1 <= re <= t),和花費(1 <= ci <= 1,000)組成。求從起始的城鎮ts (1 <= ts <= t)到終點的城鎮te(1 <= te <= t)最小的總費用。

輸入格式:

第一行: 4個由空格隔開的整數: t, c, ts, te

第2到第c+1行: 第i+1行描述第i條道路。有3個由空格隔開的整數: rs, re和ci

輸出格式:

乙個單獨的整數表示從ts到te的最小總費用。資料保證至少存在一條道路。

輸入樣例#1:

7 11 5 4

2 4 2

1 4 3

7 2 2

3 4 3

5 7 5

7 3 3

6 1 1

6 3 4

2 4 3

5 6 3

7 2 1

輸出樣例#1:

7

【樣例說明】

5->6->1->4 (3 + 1 + 3)

分析:一眼題,求兩個點之間的最短路,圖不存在負環,直接用spfa即可.spfa的演算法大致就是列舉到乙個點u,u連線到的點v的路程如果比到u的路程和u到v的路程長,則更改.

#include #include 

#include

#include

#include

using

namespace

std;

intt, c, ts, te;

const

int maxn = 20010

;int

head[maxn], nextt[maxn], d[maxn], vis[maxn], w[maxn],tot,to[maxn];

void add(int x, int y, int

z)int spfa(int s1, int

t1) }}}

return

d[t1];

}int

main()

printf("%d

", spfa(ts, te));

//while (1);

return0;

}

洛谷P1339 熱浪

德克薩斯純樸的民眾們這個夏天正在遭受巨大的熱浪!他們的德克薩斯長角牛吃起來不錯,可是他們並不是 很擅長生產富含奶油的乳製品。farmer john此時以先天下之憂而憂,後天下之樂而樂的精神,身先士卒地承擔起向德克薩斯運送大量的營養冰涼的牛奶的重任,以減輕德克薩斯人忍受酷暑的痛苦。fj已經研究過可以把...

洛谷P1339 熱浪 最短路

題目 題意 給定一張圖,問起點到終點的最短路。思路 dijkstra板子題。很久沒有寫最短路了。總結一下dijkstra的步驟吧。d陣列用於表示當前最短路徑,vis陣列用於標記當前點是否已經在最短路集合中了。每次找到乙個d最小的節點,表示他已經無法更短了,把他加入集合,用他去更新其他的節點。一共做n...

洛谷 P1339 USACO09OCT 熱浪

有乙個 n 個點 m 條邊的無向圖,請求出從 s 到 t 的最短路長度 簡單的無向圖最短路問題,採用堆優化的dijkstra dijkstra 初始到所有點的距離標記為很大很大,兩個集合 已發現和未發現。將起點距離標記為0。之後,每次從未發現的節點集合中挑選距離起點最近的 單源最短路 放入已發現的節...