hdu 2066 一个人的旅行(最短路)
2014-06-30 17:56
441 查看
题目:
链接:点击打开链接
题意:
思路:
对每个起点调用dij算法后,每个终点的最短路长度都已经出来了。对于每个起点,从这些终点的最短路中选出最最短路就可以了。
然后在比较每个终点,即求得最小值。
代码:
-----------------------------------------------------------
战斗,从不退缩;奋斗,永不停歇~~~~~~~~~~
链接:点击打开链接
题意:
思路:
对每个起点调用dij算法后,每个终点的最短路长度都已经出来了。对于每个起点,从这些终点的最短路中选出最最短路就可以了。
然后在比较每个终点,即求得最小值。
代码:
#include <iostream> #include <cstdio> #include <cstring> using namespace std; #define INF 100000000 const int N = 2000; int t,s,d; int a,b,time; int map ; int from ,to ; int dis ; int dijkstra(int a) { int vis ; int minn; memset(vis,0,sizeof(vis)); for(int i=1; i<=N; i++) { dis[i] = map[a][i]; } dis[a] = 0; vis[a] = 1; for(int i=1; i<N; i++) { int x; minn = INF; for(int y=1; y<N; y++) { if(!vis[y] && dis[y] < minn) { minn = dis[x=y]; } } vis[x] = 1; if(minn == INF) break; for(int y=1; y<=N; y++) { if(!vis[y] && dis[y] > dis[x] + map[x][y]) dis[y] = dis[x] + map[x][y]; } } minn = INF; for(int i=1; i<=d; i++) { if(minn > dis[to[i]]) { minn = dis[to[i]]; } } return minn; } int main() { //freopen("input.txt","r",stdin); while(scanf("%d%d%d",&t,&s,&d) != EOF) { for(int i=0; i<N; i++) { for(int j=0; j<=N; j++) map[i][j] = INF; } for(int i=1; i<=t; i++) { scanf("%d%d%d",&a,&b,&time); if(map[a][b] > time) map[a][b] = map[b][a] = time; } for(int i=1; i<=s; i++) scanf("%d",&from[i]); for(int i=1; i<=d; i++) scanf("%d",&to[i]); int minTime = INF; for(int i=1; i<=s; i++) { if(minTime > dijkstra(from[i])) minTime = dijkstra(from[i]); } printf("%d\n",minTime); } return 0; }
-----------------------------------------------------------
战斗,从不退缩;奋斗,永不停歇~~~~~~~~~~
相关文章推荐
- 【HDU - 2066 一个人的旅行】 最短路 dijkstra,spfa
- hdu 2066 一个人的旅行(Dijkstra求最短路)
- HDU 2066 一个人的旅行(最短路)
- hdu-2066 一个人的旅行(最短路spfa)
- HDU--杭电--2066--一个人的旅行--最短路
- hdu 2066 一个人的旅行(最短路)
- HDU 2066 一个人的旅行(最短路的简单题)
- 【hdu 2066】 一个人的旅行 ( 最短路 Dijkstra)
- HDU 2066 一个人的旅行【最短路 dijkstra & floyed & SPFA 】
- HDU 2066 一个人的旅行 (单源最短路)
- HDU 2066 一个人的旅行(最短路&Dijkstra)
- hdu 2066 一个人的旅行 (多源最短路 Floyd)
- HDU - 2066 一个人的旅行(dijkstra最短路)
- HDU 2066 一个人的旅行(最短路)
- hdu 2066 一个人的旅行 (多源最短路 )
- HDU-2066 一个人的旅行(图论,Floyd ,最短路)
- hdu 2066 一个人的旅行(最短路+SPFA)
- HDU 2066 一个人的旅行【最短路,多起点多终点,Dijkstra算法+spfa算法】
- HDU 2066 一个人的旅行(最短路)
- HDU 2066 一个人的旅行(最短路)