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 之間可能有多條路 接...