一个人的旅行

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 50818    Accepted Submission(s): 16897

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
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;
const int INF = 1 << 20;  // INF 的设置一定要足够的大
const int maxn = 1000 + 5;
int dist[maxn], map[maxn][maxn], vis[maxn];
int T, S, D, n;void Init()
{for (int i = 0; i < maxn; i++)  // 只能小于,不能等于,否则会TLE!!
    {for (int j = 0; j < maxn; j++)  // 只能小于,不能等于, 否则会TLE!!map[i][j] = (i == j ? 0 : INF);}int st, end, time;n = 0;for (int i = 0; i < T; i++){scanf("%d%d%d", &st, &end, &time);if (map[st][end] > time)  // 有重边map[st][end] = map[end][st] = time;// 找出最大边的编号n = max(n, max(st, end));}n++;   // 假设是理想中的终点(比最大的顶点大1)的编号for (int i = 0; i < S; i++){scanf("%d", &st);map[0][st] = map[st][0] = 0; // 草儿家到相邻城市的距离为0
    }for (int i = 0; i < D; i++){scanf("%d", &st);map[st][n] = map[n][st] = 0;  // 想去的地方到理想中的终点距离为0
    }
}void Dijkstra()
{for (int i = 0; i <= n; i++)  // 从0改为1dist[i] = map[0][i];  // 以草儿家和她相邻的点作为起点,求出该起点到相邻点的时间memset(vis, 0, sizeof(vis));for (int i = 0; i <= n; i++)    // 0 改为 1 也行
    {int u;int maxx = INF;for (int j = 0; j <= n; j++)  {if (!vis[j] && dist[j] < maxx)maxx = dist[u=j];}vis[u] = 1;for (int j = 0; j <= n; j++){if (dist[j] > dist[u] + map[u][j])dist[j] = dist[u] + map[u][j];}}
}int main()
{while (scanf("%d%d%d", &T, &S, &D) != EOF){Init();Dijkstra();printf("%d\n", dist[n]);}return 0;
}

转载于:https://www.cnblogs.com/-citywall123/p/9523058.html

hdu2066一个人的旅行(disjkstra)相关推荐

  1. HDU2066 一个人的旅行【最短路径+Floyd算法】

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

  2. HDU-2066 一个人的旅行

    HDU-2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)   P ...

  3. HDU2066一个人的旅行(SPFA)

    问题描述 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗〜),但是草儿仍然很喜欢旅行,因为在旅途中会遇见很多人(白马王子, ^ 0 ^),很多事,还能丰富自己的阅历,还可以看美丽 ...

  4. hdu2066 一个人的旅行 floyd

    Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...

  5. HDU2066一个人的旅行---(多起点多终点最短路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memo ...

  6. 【算法】最短路径--Hdu2066 一个人的旅行

    一个人的旅行 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^), ...

  7. HDU-2066 一个人的旅行(dijkstra)

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

  8. HDU2066 一个人的旅行

    Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...

  9. hdu2066——一个人的旅行

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

最新文章

  1. 如何用LSTM自编码器进行极端事件预测?(含Python代码)
  2. 打造全能的文本编辑器序列文章
  3. springSide3
  4. JVM 调优实战--常用JVM命令:jps/jinfo/jstat/jmap/jstack/jhat
  5. Hibernate环境搭建以及HelloWorld
  6. rocksdb写放大_Rocksdb的优劣及应用场景分析
  7. A20成功驱动FT5206触摸屏
  8. uniapp页面传参使用encodeURIComponent转义特殊符号
  9. Android Camera(5)---Android Camera调用流程
  10. 日志分析代码实现(字符串切割)
  11. [导入]VB程序中处理随机事件
  12. 计算机桌面桌面设置动态视频教程,如何在计算机上设置动态桌面?电脑设置动态视频桌面图形教程...
  13. web前端 原生js签名板(电子签名)写字板 canvas 截图
  14. win7计算机不在桌面了,怎么办Win7系统开机后不显示桌面
  15. android模拟拍照,Android调用系统相机拍照,并且模仿实现水印相机简单功能
  16. IDEA社区版tomcat配置教程
  17. 3K水稻SNP数据集的简单利用
  18. EXCEL10:excel看板
  19. 机器人/多机器人控制常用软件介绍
  20. Apache Durid (HDFS原理 特性 读写测试 集群部署 架构设计)

热门文章

  1. [转]win7-64位系统添加access的ODBC数据源 看不到其它数据源的问题
  2. 【Java从0到架构师】SpringMVC - 特殊的请求参数
  3. 信息系统项目管理07——项目成本管理
  4. 量化策略回测01双均线
  5. linux mount_nodev函数,mount()函数 Unix/Linux
  6. vue表格刷新数据_Vue.js的列表数据的同步更新方法
  7. php-fpm nginx 关系,nginx 和php-fpm关系
  8. ubtuun怎么运行PHP文件_解决phpMyAdmin在Ubuntu 16.04/PHP7.0下的Deprecation Notice
  9. python的类是什么_Python类(class)
  10. openstack rocky 安装_ubuntu 18.04 安装网易云音乐