賽艇表演 最短路

2021-09-29 13:36:37 字數 878 閱讀 1030

由於如果要經過一條道路就肯定會經過兩次,所以我們直接將所有邊的邊權乘2即可。

然後我們把每乙個點的dis

disdi

s設為在該地看比賽的**。然後將每乙個點扔進優先佇列內跑最短路即可。如果乙個地點經過某一條道路到另外的地點**比賽會更優,那麼最短路就可以跑出來。

最終答案就是dis

disdi

s

#include

#include

#include

#include

#define mp make_pair

using

namespace std;

typedef

long

long ll;

const

int n=

200010

;int n,m,tot,head[n]

;ll dis[n]

;bool vis[n]

;struct edge

e[n*2]

;void

add(

int from,

int to,ll dis)

void

dij(

)while

(q.size()

)}}}

intmain()

dij();

for(

int i=

1;i<=n;i++

)printf

("%lld "

,dis[i]);

return0;

}

賽艇表演 最短路

由於如果要經過一條道路就肯定會經過兩次,所以我們直接將所有邊的邊權乘2即可。然後我們把每乙個點的dis dis設為在該地看比賽的 然後將每乙個點扔進優先佇列內跑最短路即可。如果乙個地點經過某一條道路到另外的地點 比賽會更優,那麼最短路就可以跑出來。最終答案就是disdis include inclu...

nssl1436 賽艇表演 最短路

n nn個點m mm條邊的無向圖,每個點有門票費,對於每個點求乙個點使得去那裡看完賽艇並回來消耗的時間最小。因為是無向圖,所以去和回是同一條路,把每個點作為起點將門票費壓入然後跑最短路。include include include include define ll long long using...

賽艇表演 51nod提高組模擬試題

ac通道 題目描述 小明去某個地區 賽艇比賽,這個地區共有n個城市和m條道路,每個城市都有賽艇比賽,在第i個 城市 賽艇表演的價錢為ai,去其他城市 也需要支付賽艇表演的 任意兩個城市之間通過 一條公路連線,並且道路是雙向通行的,賽艇比賽時經過的每一條道路都要支付一定的過路費,完比賽返回家時經過的每...