hdu2066 乙個人的旅行(最短路)

2022-08-24 18:18:07 字數 1085 閱讀 3880

problem description

input

輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條路,和草兒家相鄰的城市的有s個,草兒想去的地方有d個;

接著有t行,每行有三個整數a,b,time,表示a,b城市之間的車程是time小時;(1=<(a,b)<=1000;a,b 之間可能有多條路)

接著的第t+1行有s個數,表示和草兒家相連的城市;

接著的第t+2行有d個數,表示草兒想去地方。

output

輸出草兒能去某個喜歡的城市的最短時間。

sample input

6 2 3

1 3 5

1 4 7

2 8 12

3 8 4

4 9 12

9 10 2

1 28 9 10

sample output

9
把0當做家所在的城市,與家相鄰的城市之間的距離記為0,算出最短距離後,比較所有想去的地方,找出最短的距離。

#include #include #include using namespace std;

#define n 1020

int e[n][n], d[n], book[n], dis[n];

int main()

for(i=0; ifor(i=0; iscanf("%d", &d[i]);

memset(book, 0, sizeof(book));

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

dis[i]=e[0][i];

for(i=1; i}

book[u]=1;

for(v=1; v<=n; v++)

if(dis[u]+e[u][v] < dis[v])

dis[v]=dis[u]+e[u][v];

} ans=inf;

for(i=0; ians=min(ans, dis[d[i]]);

printf("%d\n", ans); }

return 0;

}

HDU 2066 一 個人的旅行 最短路)

乙個人的旅行 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 2066 description input 輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條...

最短路 HDU2066 乙個人的旅行

description input 輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條路,和草兒家相鄰的城市的有s個,草兒想去的地方有d個 接著有t行,每行有三個整數a,b,time,表示a,b城市之間的車程是time小時 1 接著的第t 1行有s個數,表示和草兒家相連的城市 接著的第t ...

hdu2066 乙個人的旅行(最短路)

problem description input 輸入資料有多組,每組的第一行是三個整數t,s和d,表示有t條路,和草兒家相鄰的城市的有s個,草兒想去的地方有d個 接著有t行,每行有三個整數a,b,time,表示a,b城市之間的車程是time小時 1 a,b 1000 a,b 之間可能有多條路 接...