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的实现方式有很多,可以通 ...
随机推荐
- JavaWeb(六)Listener监听器
监听器 监听器就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法将立即被执行. Servlet监听器 在Se ...
- APUE 3 -- 信号(signal)<I> :概念
信号可以理解成一种软件中断.他提供了一种异步处理事件的方式.每个信号都有一个与之对应的信号名,这些信号名都带有SIG前缀,如:SIGABRT,SIGALARM.头文件signal.h 中定义了所有的信 ...
- 更符合面向对象的数据库操作方式-OrmLite
1. jar包下载 下载地址:http://ormlite.com/releases/,一般用core和android包即可. 如果使用的是android studio,也可以直接通过module s ...
- maven 随笔
<build> <plugins> <!--打包源代码--> <plugin> <artifactId>maven-source-plugi ...
- 【javascript】谈谈HTML5 ——HTML兽进化, H5兽!
作为一名Web开发者,可能你并没有对这个“H5”这个字眼投入太多的关注,但实际上它早已不知不觉进入到你的开发中,并且总有一天会让你不得不正视它,了解它并运用它 打个比方:<海贼王>中的 ...
- Django1-10-5管理界面中文设置
先确定一下版本是否更高,低版本设置(settings.py文件): LANGUAGE_CODE = 'zh-CN'TIME_ZONE = 'Asia/Shanghai' 但是新版本就会提示不识别zh- ...
- Centos 6启动流程详解
author:JevonWei 版权声明:原创作品 Centos6 启动流程 POST开机自检 当按下电源键后,会启动ROM芯片中的CMOS程序检查CPU.内存等硬件设备是否正常运行,CMOS中的程序 ...
- js学习--变量作用域和作用域链
作为一名菜鸟的我,每天学点的感觉还是不错的.今天学习闭包的过程中看到作用域与作用域链这两个概念,我觉得作为一名有追求的小白,有必要详细了解下. 变量的作用域 就js变量而言,有全局变量和局部变量.这里 ...
- C#设计模式(5)-建造者模式
引言 上一篇介绍了设计模式中的抽象工厂模式-C#设计模式(3)-抽象工厂模式,本篇将介绍建造者模式: 点击这里查看全部设计模式系列文章导航 建造者模式简介 建造者模式是将一个复杂对象的构建与表示分离, ...
- chrome开发工具指南(四)
Sources 面板中 代码段是您可以从任何页面运行的小脚本(类似于小书签). 使用"Evaluate in Console"功能可以在控制台中运行部分代码段. 请注意,Sourc ...