HDU-一个人的旅行(最短路)
一个人的旅行
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-一个人的旅行(最短路)相关推荐
- HDU 2066-一个人的旅行(图论)
HDU 2066-一个人的旅行 题目原址 [http://acm.hdu.edu.cn/showproblem.php?pid=2066] 题意 给定一些起点,一些终点,和一些边的权,构成一个无向图, ...
- hdu 2066 一个人的旅行(最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里 ...
- HDU 2066-一个人的旅行(最短路Dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- hdu 5636 Shortest Path(Floyd最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5636 解题思路: 这道题可以用Floyd解决,不过需要特殊处理一下: 实际上我们只需要利用添加的那三条 ...
- 【HDU】1535 Invitation Cards 最短路
传送门:[HDU]1535 Invitation Cards 题目分析:题目真难读......其实题目的意思就是让求从编号为1的点到其他所有点的最短路距离之和加上其他所有点到编号为1的点的最短路距离之 ...
- 【HDU】-2112-HDU Today(最短路)
HDU Today Time Limit: 15000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- D - Age of Moyu HDU - 6386 -BFS+DFS分层最短路
D - Age of Moyu HDU - 6386 题意:双向图,m条边,每条边有一个编号id,而花费就是根据这个id的变化来确定的求1-n的最短路 思路:全值为0,1的图直接bfs按层遍历图找到n ...
- hdu 4460 friend chains spfa 最短路里面的最长路
题意不再赘述... 连接http://acm.hdu.edu.cn/showproblem.php?pid=4460 此题直接郁闷致死.... 比赛的时候用的是floyd然后直接超时...当时闪过sp ...
- 【HDU - 5889】Barricade(最短路+网络流,最小割)
题干: The empire is under attack again. The general of empire is planning to defend his castle. The la ...
- HDU 5294 Tricks Device(最短路+最大流)
题意:给一个无向图(连通的),张在第n个点,吴在第1个点,'吴'只能通过最短路才能到达'张',两个问题:(1)张最少毁掉多少条边后,吴不可到达张(2)吴在张毁掉最多多少条边后仍能到达张. 思路:将所有 ...
最新文章
- python操作webservices
- Linux下core文件调试方法
- Cacti auth.php,Cacti微信企业号图文报警
- 手把手教你用1行代码实现人脸识别 -- Python Face_recognition
- 我在网上抢火车票:多加了100元的加速包,却依然买不到票
- 取两堆石子(威佐夫博弈)
- 搭建 SQL Server 复制 (一)
- python render_python:玫瑰图展示2020年1-3月轿车销量前十及占比(pyecharts)
- Android MonkeyTest 压力测试命令详解
- 在Windows下配置svn服务端钩子程序
- Python:实现random forest regressor随机森林回归器算法(附完整源码)
- 利用自定义注解,统计方法执行时间
- 一键批量下载皮皮虾视频
- python怎么读xls文件,python读取xls文件
- Java WebSocket编程与网页简易聊天室
- 你的数据库到底应该如何存储密码?
- lio-sam框架:回环检测及位姿计算
- I帧、B帧、P帧以及IDR帧之间的关系
- JavaSE (9)
- 2022-06-06 FUSE用户态文件系统
热门文章
- 关于jsp页面下,重置选择框的数据的操作!
- 16101301(MaterialLOD QualitySwitch)
- Java 获得Class的绝对路径方法
- windows下,linux下elasticsearch安装插件bigdesk插件的步骤
- 如何使用JMeter自身代理录制APP测试脚本
- JDBCUtils类测试
- 计算机等级报考备注填什么用,计算机二级有什么用
- java deployment_deployment简略介绍
- 计算机科学与技术 课表 武汉,欢迎访问武汉理工大学计算机科学与技术学院
- c++语言读txt数据,关于C++中读取txt文件中字符串 - 程序语言 - 小木虫 - 学术 科研 互动社区...