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的实现方式有很多,可以通 ...
随机推荐
- Oracle日期查询:季度、月份、星期等时间信息
--oracle有关时间信息 Select to_char(sysdate,'Q') from dual;--指定日期的季度 Select to_char(sysdate,'MM') from dua ...
- 接口测试 mock server 工具moco学习笔记
看过乙醇分享的接口测试,自己练习了moco,这里呢,吧一些练习的笔记坐下记录,方便自己查阅. 开源地址https://github.com/dreamhead/moco , 到QuickStart ...
- Amazon Aurora解读(SIGMOD 2017)
Amazon在SIGMOD 2017发表了论文<Amazon Aurora: DesignConsiderations for High Throughput Cloud-Native Rela ...
- MyBatis --- 动态SQL、缓存机制
有的时候需要根据要查询的参数动态的拼接SQL语句 常用标签: - if:字符判断 - choose[when...otherwise]:分支选择 - trim[where,set]:字符串截取,其中w ...
- 后台管理UI模板
一.EasyUI easyui是一种基于jQuery的用户界面插件集合. easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要通 ...
- 学习js函数--函数定义
函数的定义方法有三种 1.函数表达式 2.函数声明 3,new function构造函数 这边主要看下函数表达式和函数声明 函数表达式(未省略标志的) var alertName = function ...
- mysql:ip地址连接
2. 为用户授权 授权格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 2.1登录MYSQL(有ROOT权限),这里以ROO ...
- 【集美大学1411_助教博客】团队作业10——项目复审与事后分析(Beta版本)
写在前面的话 软件工程课结束了,大家开心吗?是不是再也不用熬夜写代码了?如果这门课你真的熬夜写代码了,相信你一定有收获,如果这门课结束了你觉得是自己一个全新的开始,那么这门课的意义就实现了.团队作业全 ...
- 201521123112《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 1.2 选做:收集你认为有用的代码片段 在做PTA5.3的时候一段看起来比较复杂的代码: List<En ...
- 201521123024《Java程序设计》第8周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 注意conve ...