洛谷P2299 Mzc和體委的爭奪戰 題解

2021-09-27 12:28:25 字數 937 閱讀 3164

mzc家很有錢(開玩笑),他家有n個男家丁(做過前三彈的都知道)。但如此之多的男家丁吸引來了我們的體委(矮胖小伙),他要來與mzc爭奪男家丁。

mzc很生氣,決定與其決鬥,但cat的體力確實有些不穩定,所以他需要你來幫他計算一下最短需要的時間。

第一行有兩個數n,m.n表示有n個停留站,m表示共有m條路。

之後m行,每行三個數aia_iai

​bib_ibi

​cic_ici

​​,表示第aia_iai

​個停留站到第bib_ibi

​​個停留站需要cic_ici

​的時間。(無向)

一行,輸出1到n最短時間。

我不得不說,看了一大堆題目還以為是什麼高深演算法結果只是比模板題還模板的單源最短路。。。

切入正題,這道題看出是單源最短路後就可以用dijkstra或者spfa來解出了,考慮到沒有負邊權,可以用最簡單也最省時的dijkstra來寫(spfa我怕被卡,其實主要是dijkstra寫熟了。。。)。下面就看**。

#include#include#includeusing namespace std;

struct edge

;priority_queue,vector>,greater> >q;

vectore[2505];

int dis[2505];

int vis[2505];

int main()

for(int i=1;i<=n;i++)

dis[1]=0;

q.push(make_pair(0,1));

while(!q.empty())

{ int x=q.top().second;

q.pop();

if(vis[x]==1)

continue;

vis[x]=1;

for(int i=0;i值得一看的標準模板。

P2299 Mzc和體委的爭奪戰

最短路spfa模板,注意雙向邊,所以e開兩倍。include include include include include includeusing namespace std int n,m,num,u,v,w int head 200002 dis 200002 bool vis 200002...

洛谷 2299 Mzc和體委的爭奪戰

與 第四彈。家很有錢 開玩笑 他家有 個男家丁 做過前三彈的都知道 但如此之多的男家丁吸引來了我們的體委 矮胖小伙 他要來與 爭奪男家丁。很生氣,決定與其決鬥,但 的體力確實有些不穩定,所以他需要你來幫他計算一下最短需要的時間。輸入格式 第一行有兩個數 表示有 個停留站,表示共有 條路。之後 行,每...

洛谷 2299 Mzc和體委的爭奪戰

與 第四彈。mzc家很有錢 開玩笑 他家有n個男家丁 做過前三彈的都知道 但如此之多的男家丁吸引來了我們的體委 矮胖小伙 他要來與mzc爭奪男家丁。mzc很生氣,決定與其決鬥,但cat的體力確實有些不穩定,所以他需要你來幫他計算一下最短需要的時間。輸入格式 第一行有兩個數n,m.n表示有n個停留站,...