hdu2066一个人的旅行(disjkstra)
一个人的旅行
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 50818 Accepted Submission(s): 16897
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。
#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)相关推荐
- HDU2066 一个人的旅行【最短路径+Floyd算法】
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...
- HDU-2066 一个人的旅行
HDU-2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) P ...
- HDU2066一个人的旅行(SPFA)
问题描述 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗〜),但是草儿仍然很喜欢旅行,因为在旅途中会遇见很多人(白马王子, ^ 0 ^),很多事,还能丰富自己的阅历,还可以看美丽 ...
- hdu2066 一个人的旅行 floyd
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...
- HDU2066一个人的旅行---(多起点多终点最短路径)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memo ...
- 【算法】最短路径--Hdu2066 一个人的旅行
一个人的旅行 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^), ...
- HDU-2066 一个人的旅行(dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- HDU2066 一个人的旅行
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...
- hdu2066——一个人的旅行
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
最新文章
- 如何用LSTM自编码器进行极端事件预测?(含Python代码)
- 打造全能的文本编辑器序列文章
- springSide3
- JVM 调优实战--常用JVM命令:jps/jinfo/jstat/jmap/jstack/jhat
- Hibernate环境搭建以及HelloWorld
- rocksdb写放大_Rocksdb的优劣及应用场景分析
- A20成功驱动FT5206触摸屏
- uniapp页面传参使用encodeURIComponent转义特殊符号
- Android Camera(5)---Android Camera调用流程
- 日志分析代码实现(字符串切割)
- [导入]VB程序中处理随机事件
- 计算机桌面桌面设置动态视频教程,如何在计算机上设置动态桌面?电脑设置动态视频桌面图形教程...
- web前端 原生js签名板(电子签名)写字板 canvas 截图
- win7计算机不在桌面了,怎么办Win7系统开机后不显示桌面
- android模拟拍照,Android调用系统相机拍照,并且模仿实现水印相机简单功能
- IDEA社区版tomcat配置教程
- 3K水稻SNP数据集的简单利用
- EXCEL10:excel看板
- 机器人/多机器人控制常用软件介绍
- Apache Durid (HDFS原理 特性 读写测试 集群部署 架构设计)
热门文章
- [转]win7-64位系统添加access的ODBC数据源 看不到其它数据源的问题
- 【Java从0到架构师】SpringMVC - 特殊的请求参数
- 信息系统项目管理07——项目成本管理
- 量化策略回测01双均线
- linux mount_nodev函数,mount()函数 Unix/Linux
- vue表格刷新数据_Vue.js的列表数据的同步更新方法
- php-fpm nginx 关系,nginx 和php-fpm关系
- ubtuun怎么运行PHP文件_解决phpMyAdmin在Ubuntu 16.04/PHP7.0下的Deprecation Notice
- python的类是什么_Python类(class)
- openstack rocky 安装_ubuntu 18.04 安装网易云音乐