题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066

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

跑S遍最短路,然后输出D中最小值就行

#pragma GCC optimize(2)
#include<stdio.h>
#include<algorithm>
#include<iostream>
#include<string.h>
#include<set>
#include<vector>
#include<string>
#include<queue>
#include<math.h>
using namespace std;
const int maxn = 1e5 + 100;
const int inf = 0x3f3f3f3f;
typedef long long ll;
struct node
{int x, y, w, index;
}edge[maxn * 4];
int t, s, d;
int ans;
int head[maxn];
void addedge(int u, int v, int w)
{edge[ans].x = u;edge[ans].y = v;edge[ans].w = w;edge[ans].index = head[u];head[u] = ans++;return;
}
int s_[maxn];
int d_[maxn];
int dis[maxn];
int vis[maxn];
void spfa(int st)
{queue<int>q;dis[st] = 0;vis[st] = 1;q.push(st);while (!q.empty()){int u = q.front();q.pop();vis[u] = 0;for (int i = head[u]; i != -1; i = edge[i].index){int v = edge[i].y;int w = edge[i].w;if (dis[v] > dis[u] + w){dis[v] = dis[u] + w;vis[v] = 1;q.push(v);}}}
}
int main()
{//freopen("C://input.txt", "r", stdin);while (scanf("%d%d%d", &t, &s, &d) != EOF){memset(dis, inf, sizeof(dis));memset(vis, 0, sizeof(vis));memset(head, -1, sizeof(head));ans = 0;for (int i = 1; i <= t; i++){int u, v, w;scanf("%d%d%d", &u, &v, &w);addedge(u, v, w);addedge(v, u, w);}for (int i = 1; i <= s; i++){scanf("%d", &s_[i]);}for (int i = 1; i <= d; i++){scanf("%d", &d_[i]);}for (int i = 1; i <= s; i++){spfa(s_[i]);}int _mi = inf;for (int i = 1; i <= d; i++){_mi = min(_mi, dis[d_[i]]);}printf("%d\n", _mi);}return 0;
}

hdu 2066 一个人的旅行(最短路)相关推荐

  1. hdu 2066 一个人的旅行 (多源最短路 )

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

  2. 【ICPC-292】hdu 2066 一个人的旅行

    点击打开链接hdu 2066 思路:最短路+Dijkstra 分析:题目给定的起点有s个,终点有d个.要求找到从起点到这些终点最短的路径.很显然只要枚举起点然后比较最后得到最小的值. 代码: #inc ...

  3. HDU 2066 一个人的旅行(单源最短路SPFA)

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

  4. HDU 2066 一个人的旅行

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意: 输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想 ...

  5. HDOJ 2066 HDU 2066 一个人的旅行 ACM 2066 IN HDU

    MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址:          http://acm.hdu.edu.cn/showproblem.php?pid=2066 ...

  6. HDU - 2066 一个人的旅行 (floyd/dijkstra)

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

  7. HDU 2066 一个人的旅行

    求最短路,以草儿所在的地方设为0,当做源点,草儿临近的城市到草儿的距离设为0 这里有一点要注意:并不是1~N的城市都出会出现,所以我用city数组来存储出现过的城市编号, 如city[i]=1表示 i ...

  8. 题解报告:hdu 2066 一个人的旅行

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

  9. HDU - 2066 一个人的旅行(Dijkstra)

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

最新文章

  1. 数字货币EOS半年时间暴跌90%多,还可追捧吗?
  2. Oracle中INSTR和SUBSTR的用法
  3. Java生态系统– 2014年我的5大亮点
  4. 创建存储过程时出现的This function has none of DETERMINISTIC, NO SQL解决办法
  5. java orika_常见Bean映射工具分析评测及Orika介绍
  6. Istio微服务平台集成实践
  7. java 获取文件大小_阿里Java后端开发面经,面试官都替我感到绝望
  8. 前端快速开发插件emmet,炫技必备
  9. 把JS和CSS合并到1个文件
  10. InDesign转曲字体 导出PDF的技巧
  11. 开发者必看:Google Play应用上架流程(希望你不踩坑!)
  12. 【JavaSE】入门概述(1~41)
  13. 从京东双11战报中,找到未来值得国产品牌看好的发展机遇
  14. 酷炫RGB LED立方体 (RP2040+WS2812)
  15. 9.16nbsp;瑞晟软件笔试
  16. opencv与C++实现最大类间方差法(OTSU)进行图像二值化
  17. 如何使用peakview软件查看AB SCIEX 质谱下机数据
  18. 最详细的解释小白也能听懂,终于搞明白了
  19. SQL渗透与防御——(三)SQL盲注
  20. Vulkan Tutorial 4

热门文章

  1. 从大自然得到色彩的启示
  2. Git 命令之Git clean
  3. 算法-动态规划 Dynamic Programming--从菜鸟到老鸟
  4. winrar40天试用完了
  5. 对冲基金到底是什么:细数对冲基金的七种武器
  6. 【Android】java.lang.SecurityException: getDeviceId: Neither user xxxxx nor current process has andro
  7. BigBrother的大数据之旅Day 12 Hbase(1)
  8. Unity3D脚本中的Awake()和Start()的本质区别
  9. Infragistics控件使用
  10. win2008 磁盘碎片整理