一个人的旅行

Problem Description

虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时间,可不能浪费啊,一定要给自己好好的放个假,可是也不能荒废了训练啊,所以草儿决定在要在最短的时间去一个自己想去的地方!因为草儿的家在一个小镇上,没有火车经过,所以她只能去邻近的城市坐火车(好可怜啊~)。

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 2 8 9 10

Sample Output

9

解题思路:

先建图,然后把与草儿相连的城市置为0,然后一个dijksta算法,最后把到D个城市中最短的时间输出

程序代码:

#include<stdio.h>
#include<string.h>
#define inf 99999999
int e[1010][1010],dis[1010],book[1010],d[1010];
int T,S,D,a,b,time;
void dijksta();
int main()
{int s,i,j,min,count;while(scanf("%d%d%d",&T,&S,&D)!=EOF){for(i=0;i<=1000;i++)for(j=0;j<=1000;j++)if(i==j)e[i][j]=0;elsee[i][j]=inf;while(T--){scanf("%d%d%d",&a,&b,&time);if(time<e[a][b])e[a][b]=e[b][a]=time;}for(i=0;i<S;i++){scanf("%d",&s);e[0][s]=e[s][0]=0;}for(i=1;i<=D;i++)scanf("%d",&d[i]);dijksta();count=inf;for(i=1;i<=D;i++)if(dis[d[i]]<count)count=dis[d[i]];printf("%d\n",count);}return 0;
}
void dijksta()
{int i,j,k,min,u;memset(book,0,sizeof(book));book[0]=1;for(i=0;i<=1000;i++)dis[i]=e[0][i];for(k=1;k<=1000;k++){min=inf;for(i=1;i<=1000;i++)if(dis[i]<min&&book[i]==0){min=dis[i];u=i;}book[u]=1;for(i=1;i<=1000;i++)if(dis[i]>dis[u]+e[u][i]&&book[i]==0)dis[i]=dis[u]+e[u][i];}
}

HDU-一个人的旅行(最短路)相关推荐

  1. HDU 2066-一个人的旅行(图论)

    HDU 2066-一个人的旅行 题目原址 [http://acm.hdu.edu.cn/showproblem.php?pid=2066] 题意 给定一些起点,一些终点,和一些边的权,构成一个无向图, ...

  2. hdu 2066 一个人的旅行(最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里 ...

  3. HDU 2066-一个人的旅行(最短路Dijkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. hdu 5636 Shortest Path(Floyd最短路)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5636 解题思路: 这道题可以用Floyd解决,不过需要特殊处理一下: 实际上我们只需要利用添加的那三条 ...

  5. 【HDU】1535 Invitation Cards 最短路

    传送门:[HDU]1535 Invitation Cards 题目分析:题目真难读......其实题目的意思就是让求从编号为1的点到其他所有点的最短路距离之和加上其他所有点到编号为1的点的最短路距离之 ...

  6. 【HDU】-2112-HDU Today(最短路)

    HDU Today Time Limit: 15000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total ...

  7. D - Age of Moyu HDU - 6386 -BFS+DFS分层最短路

    D - Age of Moyu HDU - 6386 题意:双向图,m条边,每条边有一个编号id,而花费就是根据这个id的变化来确定的求1-n的最短路 思路:全值为0,1的图直接bfs按层遍历图找到n ...

  8. hdu 4460 friend chains spfa 最短路里面的最长路

    题意不再赘述... 连接http://acm.hdu.edu.cn/showproblem.php?pid=4460 此题直接郁闷致死.... 比赛的时候用的是floyd然后直接超时...当时闪过sp ...

  9. 【HDU - 5889】Barricade(最短路+网络流,最小割)

    题干: The empire is under attack again. The general of empire is planning to defend his castle. The la ...

  10. HDU 5294 Tricks Device(最短路+最大流)

    题意:给一个无向图(连通的),张在第n个点,吴在第1个点,'吴'只能通过最短路才能到达'张',两个问题:(1)张最少毁掉多少条边后,吴不可到达张(2)吴在张毁掉最多多少条边后仍能到达张. 思路:将所有 ...

最新文章

  1. python操作webservices
  2. Linux下core文件调试方法
  3. Cacti auth.php,Cacti微信企业号图文报警
  4. 手把手教你用1行代码实现人脸识别 -- Python Face_recognition
  5. 我在网上抢火车票:多加了100元的加速包,却依然买不到票
  6. 取两堆石子(威佐夫博弈)
  7. 搭建 SQL Server 复制 (一)
  8. python render_python:玫瑰图展示2020年1-3月轿车销量前十及占比(pyecharts)
  9. Android MonkeyTest 压力测试命令详解
  10. 在Windows下配置svn服务端钩子程序
  11. Python:实现random forest regressor随机森林回归器算法(附完整源码)
  12. 利用自定义注解,统计方法执行时间
  13. 一键批量下载皮皮虾视频
  14. python怎么读xls文件,python读取xls文件
  15. Java WebSocket编程与网页简易聊天室
  16. 你的数据库到底应该如何存储密码?
  17. lio-sam框架:回环检测及位姿计算
  18. I帧、B帧、P帧以及IDR帧之间的关系
  19. JavaSE (9)
  20. 2022-06-06 FUSE用户态文件系统

热门文章

  1. 关于jsp页面下,重置选择框的数据的操作!
  2. 16101301(MaterialLOD QualitySwitch)
  3. Java 获得Class的绝对路径方法
  4. windows下,linux下elasticsearch安装插件bigdesk插件的步骤
  5. 如何使用JMeter自身代理录制APP测试脚本
  6. JDBCUtils类测试
  7. 计算机等级报考备注填什么用,计算机二级有什么用
  8. java deployment_deployment简略介绍
  9. 计算机科学与技术 课表 武汉,欢迎访问武汉理工大学计算机科学与技术学院
  10. c++语言读txt数据,关于C++中读取txt文件中字符串 - 程序语言 - 小木虫 - 学术 科研 互动社区...