#2066:一个人的旅行(Dijkstra算法入门题)
一个人的旅行
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 31420 Accepted Submission(s): 10804
Problem Description
Input
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。
Output
Sample Input
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
AC代码:
#include<bits/stdc++.h>
#define N 1005
#define inf 9999999
using namespace std;
int e[N][N], dis[N],book[N];
void dijkstra(int n) {
int i, j, k, Min;
memset(book, 0, sizeof(book));
//初始化某点的最短路径
for (i = 0; i <= n; ++i)dis[i] = e[0][i];
book[0] = 1;
for (k = 1; k <= n; ++k) {
Min = inf;
for (i = 1; i <= n; ++i)
if (!book[i] && dis[i] < Min)Min = dis[i], j = i;
book[j] = 1;
for (i = 1; i <= n; ++i)
if (!book[i] && dis[i] > e[j][i] + dis[j])
dis[i] = e[j][i] + dis[j];
}
}
int main() {
int t, s, d, Min, u, v, w, n;
while (cin >> t >> s >> d) {
memset(e, inf, sizeof(e));
for (int i = 0; i < N; ++i)e[i][i] = 0;
n = 0;
//输入城市间路径与时间
while (t--) {
cin >> u >> v >> w;
//因为有些路径是给了多次,取最小的
if (e[u][v] > w)e[u][v] = e[v][u] = w;
n = max(n, max(u, v));
}
//相邻城市距离为0
while (s--) {
cin >> v;
e[0][v]= e[v][0] = 0;
}
dijkstra(n);
Min = inf;
while (d--) {
cin >> v;
Min = min(Min, dis[v]);
}
cout << Min << endl;
}
return 0;
}
#2066:一个人的旅行(Dijkstra算法入门题)的更多相关文章
- HDU 2066 一个人的旅行 (Dijkstra算法)
一个人的旅行 Time Limit : 1000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submis ...
- 【hdu 2544最短路】【Dijkstra算法模板题】
Dijkstra算法 分析 Dijkstra算法适用于边权为正的情况.它可用于计算正权图上的单源最短路( Single-Source Shortest Paths, SSSP) , 即从单个源点出发, ...
- POJ - 1469 COURSES (匈牙利算法入门题)
题意: P门课程,N个学生.给出每门课程的选课学生,求是否可以给每门课程选出一个课代表.课代表必须是选了该课的学生且每个学生只能当一门课程的. 题解: 匈牙利算法的入门题. #include < ...
- hdu 2066 一个人的旅行 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意分析:以草儿家为原点,给出城市间相互抵达的时间,给出草儿想去的城市,求最短时间.典型的单源最 ...
- 最短路径Dijkstra算法模板题---洛谷P3371 【模板】单源最短路径(弱化版)
题目背景 本题测试数据为随机数据,在考试中可能会出现构造数据让SPFA不通过,如有需要请移步 P4779. 题目描述 如题,给出一个有向图,请输出从某一点出发到所有点的最短路径长度. 输入格式 第一行 ...
- ACM: HDU 3790 最短路径问题-Dijkstra算法
HDU 3790 最短路径问题 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Des ...
- poj2387 Til the Cows Come Home 最短路径dijkstra算法
Description Bessie is out in the field and wants to get back to the barn to get as much sleep as pos ...
- hdu2544 最短路 Dijkstra算法
最短路(Dijkstra算法模板题) Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- 一个人的旅行(hdu2066)Dijkstra算法模版
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 一个人的旅行(用小技巧转化为dijkstra算法)
注意: 1:因为两点之间可能有多条路,所以更新路径长度的时候做一次判断 if(time < mat[a][b]) mat[a][b] = mat[b][a] = time; 2:因为主函数中的数 ...
随机推荐
- java中LocalDate、Calendar、Date类型进行加减
java三种类型的加减,LocalDate.Calendar.Date @ 目录 1.LocalDate类型加减: 2.Calendar加减: 3.Date类型加减 1.LocalDate类型加减: ...
- Cadence SPB 22.1 -- 原理图的电器元件放置03Day
1.新增原理图:"SCHEMATIC"-->"New Page" 2.元器件放置 ①.添加原理图库 ②.放置元器件 选择对应元件库,再选择需要放置的元件, ...
- 常用sql语句(不定时更新)
--查询数据库所有表名与表说明 select a.name tableName, b.value tableComment from sysobjects a LEFT JOIN sys.extend ...
- [ARC169E] Avoid Boring Matches
题解链接 非常厉害的一道题. 考虑无解是什么情况? R 的个数超过 \(2^{n-1}\) 先考虑如何判定.从前往后考虑,如果遇到一个 B,那么如果后面有 R,就选最靠前的 R,否则选最靠后的一个 B ...
- AI换脸利器!Roop下载分享
前段时间给大家介绍过换脸界最强的Rope,感兴趣的小伙伴可以戳戳手指 传送门:https://blog.csdn.net/S_eashell?spm=1011.2415.3001.5343 今天要 ...
- hdu4365 Palindrome graph
Palindrome graph Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- 用JS实现简单的屏幕录像机
本文将介绍如何用JS实现简单的屏幕录像机. 一.录制准备 创建一个按钮 <button id="recording-toggle">Start recording< ...
- 关于eclipse中找不到recyclerview的问题
在eclipse中直接引入v7包之后,还是找不到recyclerview的问题,我们可以通过 sdk\extras\android\support\v7\recyclerview\libs这个目录找到 ...
- 关于RichEdit的那些坑
项目开发中用到了richedit,但是并没有用到图文的功能,只是说使用他的各种属性,集成了一个自己的超文本编辑器. 开发遇到了各种坑,在这里跟大家分享下: 1: 跳转编辑界面,无法获取焦点. 通过Ri ...
- [python] 基于Dataset库操作数据库
dataset库是Python中一个用于操作数据库的简单库,它提供了一种简洁的方式与各种关系型数据库进行交互,例如SQLite.MySQL.PostgreSQL 等.你可以使用dataset库来执行查 ...