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的实现方式有很多,可以通 ...
随机推荐
- 关于 Go 中 Map 类型和 Slice 类型的传递
关于 Go 中 Map 类型和 Slice 类型的传递 Map 类型 先看例子 m1: func main() { m := make(map[int]int) mdMap(m) fmt.Printl ...
- JDK源码阅读——ArrayList
序 如同C语言中字符数组向String过渡一样,作为面向对象语言,自然而然的出现了由Object[]数据形成的集合.本文从JDK源码出发简单探讨一下ArrayList的几个重要方法. Fields / ...
- [js高手之路]node js系列课程-图解express+supervisor+ejs用法
上文通过node js自带的http模块搭建了一个简易的服务器,实际在开发中,一般用的是express框架,本文我们就来讲讲项目开发中必备不可少的几样东西: 服务器( express ) 路由( ex ...
- 后台管理UI模板
一.EasyUI easyui是一种基于jQuery的用户界面插件集合. easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要通 ...
- 谈一谈EasyUI中TreeGrid的过滤功能
写在最前面 这个星期一直在纠结easyui的treegrid的过滤功能,原因呢,自然是项目中一个莫名奇妙的需求. easyui虽说是后端程序员的前端框架,但是说句实话,除去api,让我直接写里面的节点 ...
- Android基础知识大全(精品)
[1].ProgressBar <ProgressBar android:id="@+id/progress_bar" android:layout_width=&quo ...
- 日志log4j配置详情,日志log具体到你想不到
一.Log4j简介Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局). 1.LoggersLoggers组件在此系统中被分为五个级别:DEBU ...
- Kafka Streams 剖析
1.概述 Kafka Streams 是一个用来处理流式数据的库,属于Java类库,它并不是一个流处理框架,和Storm,Spark Streaming这类流处理框架是明显不一样的.那这样一个库是做什 ...
- JTemplates + $.Ajax
上篇基础使用后: +AJAX 只需要改列名即可 :<script type="text/template" id="foreach"> 里的循环 ...
- 自制VTP实验总结
(packet tracer模拟器) 6.1)实验拓扑 //绿色:通:橙色:不通 //sw0是根桥:全通 Pc0:ip 192.168.1.1 Pc1: ip 192.168.1.2 Pc2:ip 1 ...