ACM学习之路___HDU 2066 一个人的旅行
Description
Input
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。
Output
Sample Input
Sample Output
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXINT=1<<25;
int num0[1050][1050];
int num1[1050];
int dis[1050];//distance
bool flag0[1050];
int T,S,D,flag,MIN,m;
void dijkstra()
{
memset(flag0,0,sizeof(flag0));//重置标记数组
for(int i=0 ; i<=m ; i++)
dis[i]=num0[0][i];//各点到草儿家所需最小时间
flag0[0]=1;
dis[0]=0;
for(int i=0 ; i<m ; i++)
{
MIN=MAXINT;
for(int j=1 ; j<=m ; j++)
{
if(dis[j]<MIN && !flag0[j])
{
MIN=dis[j];
flag=j;
}
}
if(MIN==MAXINT)
break;
flag0[flag]=1;
for(int j=1 ; j<=m ; j++)
if(!flag0[j])//attention
dis[j]=min(dis[j],dis[flag]+num0[flag][j]);//各点到草儿家所需最短时间
}
}
int main()
{
int i,j,a,b,time,Min;
while(~scanf("%d%d%d",&T,&S,&D))
{
m=-1;
for(i=0 ; i<1050 ; i++)
for(j=0 ; j<=i ; j++)
if(i != j)
num0[i][j]=num0[j][i]=MAXINT;
else
num0[i][j]=0;//点与点之间所需时间初始化
for(i=0 ; i<T ; i++)
{
scanf("%d%d%d",&a,&b,&time);
if(time<num0[a][b])//因为a,b间不止一条路,选取时间最短的那条
num0[a][b]=num0[b][a]=time;
m=max(max(m,a),b);
}
for(i=0 ; i<S ; i++)
{
int s;
scanf("%d",&s);
num0[0][s]=num0[s][0]=0;
}
for(i=0 ; i<D ; i++)
scanf("%d",&num1[i]);
dijkstra();
Min=MAXINT;
for(i=0 ; i<D ; i++)
Min=min(Min,dis[num1[i]]);//想要到的地方中所需最小时间
printf("%d\n",Min);
}
return 0;
}
ACM学习之路___HDU 2066 一个人的旅行的更多相关文章
- ACM学习之路___HDU 5723(kruskal + dfs)
Abandoned country Time Limit: / MS (Java/Others) Memory Limit: / K (Java/Others) Total Submission(s) ...
- ACM学习之路___HDU 1385(带路径保存的 Floyd)
Description These are N cities in Spring country. Between each pair of cities there may be one trans ...
- ACM学习之路————一个大整数与一个小整数不得不说得的秘密
这个相对于两个大整数的运算来说,只能说是,low爆了. 只要利用好除法的性质,这类题便迎刃而解.O(∩_∩)O哈哈~ //大整数除一个int数 #include<iostream> #in ...
- ACM学习之路__HDU 1045
Fire Net Description : Suppose that we have a square city with straight streets. A map of a city is ...
- ACM学习之路
2018-10-18 11:03:00 今天开始踏上实现梦想的道路,希望自己不要懈怠. 坚持做简单的事,坚持下来就会变得不简单.
- <2014 05 09> Lucida:我的算法学习之路
[转载] 我的算法学习之路 关于 严格来说,本文题目应该是我的数据结构和算法学习之路,但这个写法实在太绕口——况且CS中的算法往往暗指数据结构和算法(例如算法导论指的实际上是数据结构和算法导论),所以 ...
- jQuery学习之路(1)-选择器
▓▓▓▓▓▓ 大致介绍 终于开始了我的jQuery学习之路!感觉不能再拖了,要边学习原生JavaScript边学习jQuery jQuery是什么? jQuery是一个快速.简洁的JavaScript ...
- Android开发学习之路-RecyclerView滑动删除和拖动排序
Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开 ...
- RPC远程过程调用学习之路(一):用最原始代码还原PRC框架
RPC: Remote Procedure Call 远程过程调用,即业务的具体实现不是在自己系统中,需要从其他系统中进行调用实现,所以在系统间进行数据交互时经常使用. rpc的实现方式有很多,可以通 ...
随机推荐
- 常见的Linux操作系统推荐
常见的Linux操作系统推荐.. ---------------------- Ubuntu系统 这个系统又名乌班图系统,也是一个以桌面应用为主的Linux操作系统,系统分为云平台,服务器版和桌面版. ...
- 用IO流中的File类来创建文件及目录
题目如下: 设计一个命令窗口程序,要求按照如下的格式显示 例如:===利用命令窗口完成文件的操作===(1)创建目录 (2)创建文件 (3)删除目录 (4)删除文件 ===现在正在做创建目录的操作== ...
- java注释中使用注解@see
缘起 在写java时,有时需要写注释,而为了更好的描述,需要引用和参考其他代码.为了让阅读者更好的体验,javadoc中支持链接跳转,这就需要用到注解@see. @see用法 注解@see可以在注释中 ...
- JSP知识点大致介绍1
解释:当jsp写好,运行服务器,还没有发出请求(写网址按Enter),Tomcat的work下是没有字节码文件的.当写网址:localhost:8888/xxxx/index.jsp按Enter,运行 ...
- linux(十)之初始化文件
前面写了很多linux的知识,其实很多都是命令的,所以要去多多的练习才能学的更好,加油为了好工作. 要么现在懒惰,未来讨饭.要么现在努力,未来惬意. 一.初始化文件概述 1.1.概述 系统初始化文件是 ...
- [读书笔记] 一、Spring boot项目搭建与配置文件
读书笔记:[JavaEE开发的颠覆者 Spring Boot实战] 作者:汪云飞 从今天开始坚持读书,并记录下此读书笔记. 一,初接触 Spring boot 项目Hello world搭建 1.po ...
- jmeter 非gui 模式跑jmx
D:\study\apache-jmeter-3.0\bin>jmeter -n -t D:\study\apache-jmeter-3.0\基金排行.jmx -l D:\study\apach ...
- wifi pineapple 外接USB无线网卡桥接外网
0:选择USB网卡 在没有有线网络的情况下,可以外挂一个usb无线网卡来桥接上网,目前支持3070L.8187L芯片的网卡,反正linux系统都用这些芯片, 免的安装驱动, 我选择的是 WN-722N ...
- C++ Concept 和Java 接口
C++ Concept 和Java 接口 Concept及接口 我会用Java写个case来解释什么是C++的Concept.Concept可以理解为接口,它是一种广义的接口.不同于Java的Inte ...
- SQL查询语句分类
SQL查询语句有多种,下面总结下.首先先建三张表用于后面的实验 -- 学生表,记录学生信息 CREATE TABLE student( sno ), sname ), ssex ENUM('男','女 ...