一个人的旅行
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 68385 Accepted Submission(s): 22922

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

Author
Grass

Source
RPG专场练习赛

问题链接:HDU2066 一个人的旅行
问题简述:(略)
问题分析:这个题是最短路径的裸题,用Floyd算法来解决,不解释。
程序说明:(略)
参考链接:(略)
题记:(略)

AC的C++语言程序如下:

/* HDU2066 一个人的旅行 */#include <bits/stdc++.h>using namespace std;/* Floyd-Warshall算法:计算图中任意2点之间的最短距离* 复杂度:O(N×N×N)* 输入:n 全局变量,图结点数*      g 全局变量,邻接矩阵,g[i][j]表示结点i到j间的边距离* 输出:g 全局变量*/
const int INF = 0x3f3f3f3f;
const int N = 1000 + 1;
int g[N][N], n;void floyd()
{for(int k = 1; k <= n; k++)for(int i = 1; i <= n; i++)if(g[i][k] != INF)for(int j = 1; j <= n; j++)if(g[k][j] != INF)g[i][j] = min(g[i][j], g[i][k] + g[k][j]);
}int start[N];
int end2[N];int main()
{int t, s, d;while(~scanf("%d%d%d", &t, &s, &d)) {memset(g, INF, sizeof(g));n = 0;for(int i = 0; i < t; i++) {int u, v, w;scanf("%d%d%d", &u, &v, &w);g[u][v] = g[v][u] = min(g[u][v], w);n = max(n, u);n = max(n, v);}for(int i = 1; i <= s; i++)scanf("%d", &start[i]);for(int i = 1; i <= d; i++)scanf("%d", &end2[i]);floyd();int mind = INF;for(int i = 1; i <= s; i++)for(int j = 1; j <= d; j++)mind = min(mind, g[start[i]][end2[j]]);printf("%d\n", mind);}return 0;
}

HDU2066 一个人的旅行【最短路径+Floyd算法】相关推荐

  1. C++ 实现带权有向图的每对顶点之间的最短路径Floyd算法(完整代码)

    基本思想是: 假设求从顶点vi到vj的最短路径. 如果从vi到vj有弧,则从vi到vj存在一条长度为arcs[i][j]的路径,该路径不一定是最短路径,尚需进行n次试探. 首先考虑路径(vi, v0, ...

  2. 最短路径(Floyd算法)(c/c++)

    如果要得到图中各个顶点之间的最短路径,方法1:可以对每一个顶点采用Dijkstra算法:方法2:可以采用Floyd算法,它是一种用来求双源点之间最短路径的算法,采用邻接矩阵来存储图 辅助结构 int ...

  3. 最短路径--Floyd算法

    Floyd算法 1.定义概览 Floyd-Warshall算法(Floyd-Warshall algorithm)是解决任意两点间的最短路径的一种算法,可以正确处理有向图或负权的最短路径问题,同时也被 ...

  4. 【最短路径Floyd算法详解推导过程】看完这篇,你还能不懂Floyd算法?还不会?...

    简介 Floyd-Warshall算法(Floyd-Warshall algorithm),是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似.该算法名称以 ...

  5. 最短路径——Floyd算法及优化(蓝桥杯试题集)

    *对最短路径问题以及floyd算法.Dijkstra算法不是很理解的同学请移步前几篇博客~ 题目链接: http://lx.lanqiao.cn/problem.page?gpid=T15 问题描述 ...

  6. 最短路径——Floyd算法HDU Today(hdu2112)

    最短路径问题是图论研究中的一个经典算法问题, 旨在寻找图(由结点和路径组成的)中两结点之间的最短路径. 算法具体的形式包括: 确定起点的最短路径问题 - 即已知起始结点,求最短路径的问题. 确定终点的 ...

  7. 求最短路径Floyd算法的并行化(解APSP问题)

    求最短路径的串行算法在互联网上应该一搜一大堆,也非常简单,几行代码搞定.但Floyd的并行算法却很难搜到,github倒是有一些,但不容易运行成功,这里对这个算法的并行化进行详细的讲解,结合论文以及实 ...

  8. 多源最短路径--Floyd算法

    #include<iostream> #include<cstdio> using namespace std; const int INF = 0x3f3f3f3f; int ...

  9. 最短路径——Floyd算法

    1. 背景: Floyd算法又称为插点法,是一种利用动态规划的思想寻找给定的加权图中多源点之间最短路径的算法,与Dijkstra算法类似.该算法名称以创始人之一.1978年图灵奖获得者.斯坦福大学计算 ...

最新文章

  1. 英语名词复数的一般构成方法以及读音规则
  2. 如何灵活使用 ActionBar, Google 音乐ActionBar 隐藏和显示效果
  3. 有人说是金山造了熊猫烧香病毒
  4. Git 在 Linux 上和 windows 上的安装
  5. VMware 共享目录不显示的解决办法
  6. 华为hcia认证有哪些方向?华为hcia认证哪些方向比较好,值得推荐?
  7. 安踏2019上半年收益突破148亿元劲增超40%
  8. 三角形外接球万能公式_【光速解题】如何秒定各类外接球的球心
  9. 一些用的上的在线网站
  10. 微信开发者工具通过二维码编译步骤
  11. Springboot查看MANIFEST.MF信息
  12. 【Kruskal】Uva 1395 Slim Span
  13. 太原理工大学计算机科学与技术老师 王颖,王华 - 太原理工大学 - 信息与计算机学院...
  14. ESP32-CAM高性价比温湿度监控系统配网与上网方案设计与实现
  15. python股票量化投资课程 百度云_网易云课堂 Python股票量化投资课程|百度云|天翼云|GD|OD下载...
  16. c语言 求二元一次方程的解
  17. YUTOOL music蓝牙耳机说明书
  18. 数据库的前世今生07
  19. ios图片编辑(看这个就够了!)
  20. 数字逻辑---头歌实训作业---多路选择器设计与应用(Logisim)

热门文章

  1. 2018-11-08
  2. CentOS7通过yum安装Openresty
  3. 移动设备响应式网站之CSS媒体查询
  4. apache服务器进程配置文件是,apache服务器进程配置文件是
  5. android 小米截图,小米工程师晒基于Android Q定制的MIUI截图
  6. 2021年奎屯七中高考成绩查询,奎屯高考成绩查询
  7. 详解:IDEA不能自动加载import问题
  8. java panel边框_java – 如何在jPanel上设置边框?
  9. 计算机tlv简介_TLV编码格式详解
  10. 剑指offer面试题53 - II. 0~n-1中缺失的数字(二分查找)