hdu 2066 一个人的旅行 (多源最短路 )
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。
链接: hdu 2066
分析:每次以一个邻近的城市为起点,求所有能到达想去城市的最短时间
#include<cstdio>
#include<climits>
#include<cstring>
#include<queue>
using namespace std;
int n,a[1010][1010],vis[1010],dis[1010];
void SPFA(int pos) //SPFA算法 31MS
{queue<int> q;int i;memset(vis,0,sizeof(vis));for(i=1;i<=n;i++)dis[i]=INT_MAX;dis[pos]=0;q.push(pos);vis[pos]=1;while(!q.empty()){pos=q.front();q.pop();vis[pos]=0;for(i=1;i<=n;i++)if(dis[pos]!=INT_MAX&&a[pos][i]!=INT_MAX&&dis[pos]+a[pos][i]<dis[i]){dis[i]=dis[pos]+a[pos][i];if(!vis[i]){q.push(i);vis[i]=1;}}}
}
/*void dijkstra(int pos) //dijkstra 算法 171MS
{int i,j,min;memset(vis,0,sizeof(vis));vis[pos]=1;for(i=1;i<=n;i++)dis[i]=a[pos][i];dis[pos]=0;for(i=1;i<=n;i++){min=INT_MAX;for(j=1;j<=n;j++)if(!vis[j]&&dis[j]<min){min=dis[j];pos=j;}vis[pos]=1;for(j=1;j<=n;j++)if(!vis[j]&&a[pos][j]!=INT_MAX&&dis[pos]+a[pos][j]<dis[j])dis[j]=dis[pos]+a[pos][j];}
}*/
int main()
{int i,j,k,c,T,S,D,s[1010],d[1010];while(scanf("%d%d%d",&T,&S,&D)!=EOF){for(i=1;i<=1000;i++)for(j=1;j<=1000;j++)a[i][j]=INT_MAX;n=0;while(T--){scanf("%d%d%d",&i,&j,&c);if(c<a[i][j]) //判断重复遍,选取最小的边a[i][j]=a[j][i]=c;if(i>n)n=i;if(j>n)n=j;}for(i=1;i<=S;i++)scanf("%d",&s[i]);for(i=1;i<=D;i++)scanf("%d",&d[i]);k=INT_MAX;for(i=1;i<=S;i++){SPFA(s[i]);//dijkstra(s[i]);for(j=1;j<=D;j++)if(dis[d[j]]<k)k=dis[d[j]];}printf("%d\n",k);}return 0;
}
hdu 2066 一个人的旅行 (多源最短路 )相关推荐
- 【ICPC-292】hdu 2066 一个人的旅行
点击打开链接hdu 2066 思路:最短路+Dijkstra 分析:题目给定的起点有s个,终点有d个.要求找到从起点到这些终点最短的路径.很显然只要枚举起点然后比较最后得到最小的值. 代码: #inc ...
- HDU 2066 一个人的旅行(单源最短路SPFA)
Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还 ...
- HDOJ 2066 HDU 2066 一个人的旅行 ACM 2066 IN HDU
MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=2066 ...
- hdu 2066 一个人的旅行(最短路)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里 ...
- HDU 2066 一个人的旅行
http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意: 输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想 ...
- HDU 2066 一个人的旅行
求最短路,以草儿所在的地方设为0,当做源点,草儿临近的城市到草儿的距离设为0 这里有一点要注意:并不是1~N的城市都出会出现,所以我用city数组来存储出现过的城市编号, 如city[i]=1表示 i ...
- 题解报告:hdu 2066 一个人的旅行
Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...
- HDU - 2066 一个人的旅行 (floyd/dijkstra)
虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景--草儿 ...
- HDU - 2066 一个人的旅行(Dijkstra)
虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景--草儿 ...
最新文章
- 腾讯优图开源首个医疗AI ML预训练模型
- getcontentpane java_java – 为什么getcontentpane()未定义?
- redis 集群搭建_一文轻松搞懂redis集群原理及搭建与使用
- 遇到的问题锦集及解决方案
- 电脑显示计算机无法显示,如果计算机无法打开怎么办?
- PWM 发生器模块设计
- javascript --- 瀑布流的实现
- 将CloudWatch Logs与Cloudhub Mule集成
- git 忽略 部分文件夹_git提交忽略某些文件或文件夹
- 怎样安装Firebug和FirePath
- 计算机病毒与恶意代码期末总结
- RuoYi-Vue Spring Security 密码加密
- 经纬财富:十堰炒白银有哪些技巧
- 2021-08-29 网安实验-网络协议栈渗透测试之DDOS攻击之CC攻击
- 优雅的git commit
- Windows 10实用优化辅助工具
- 冰雪之冠上的明珠与东方明珠 辉映在黄浦江两岸
- admin.php生成地址,FastAdmin隐藏后台登录入口地址的方法
- 情人节,你约,还是不约?
- 【泡泡机器人公开课】公开课链接 机器人俱乐部