最短路(bellman)-hdu2066
Input
输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个;
接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=<(a,b)<=1000;a,b 之间可能有多条路)
接着的第T+1行有S个数,表示和草儿家相连的城市;
接着的第T+2行有D个数,表示草儿想去地方。
Output
输出草儿能去某个喜欢的城市的最短时间。
Sample Input
6 2 3
1 3 5
1 4 7
2 8 12
3 8 4
4 9 12
9 10 2
1 2
8 9 10
Sample Output
9
代码实现:
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
int T,S,D;
const int MAXN =1e6+;
const int INF = 0x3f3f3f3f;
struct edge{
int from,to,d;
}E[MAXN];
int d[MAXN],a[MAXN],b[MAXN];
void bellman(int s){
fill(d,d+MAXN,INF);
d[s]=;
for(int i=;i<T;i++){
bool flag=false;
for(int j=;j<T*;j++){
if(d[E[j].to] > d[E[j].from]+E[j].d){//因为这里需要以S种不同的起点a[i](i从1~S)来遍历图并进行松弛,所以前面不加d[E[j].to]!=INF这个条件
flag=true;
d[E[j].to]=d[E[j].from]+E[j].d;
}
}
if(!flag) break;
}
} int main(){
while(~scanf("%d%d%d",&T,&S,&D)){
for(int i=;i<T;i++){
int from,to,d;
scanf("%d%d%d",&from,&to,&d);
E[i]=(edge){from,to,d};
E[i+T]=(edge){to,from,d};
}
for(int i=;i<S;i++)
scanf("%d",&a[i]);
for(int i=;i<D;i++)
scanf("%d",&b[i]);
int ans=INF;
for(int i=;i<S;i++){
bellman(a[i]);//对每个不同的可以直达的城市作为起点开始遍历,找出最短的能到达众多目的地中任何一个目的地的路径距离
for(int j=;j<D;j++){
ans=min(ans,d[b[j]]);//众多目的地点只需能够到达其中一点,并且距离最短即可
}
}
printf("%d\n",ans);
}
return ;
}
最短路(bellman)-hdu2066的更多相关文章
- 蓝桥杯 算法训练 最短路 [ 最短路 bellman ]
传送门 算法训练 最短路 时间限制:1.0s 内存限制:256.0MB 锦囊1 锦囊2 锦囊3 问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证 ...
- poj 3259 Wormholes(最短路 Bellman)
题目:http://poj.org/problem?id=3259 题意:一个famer有一些农场,这些农场里面有一些田地,田地里面有一些虫洞,田地和田地之间有路,虫洞有这样的性质: 时间倒流.问你这 ...
- NITACMOJ144稳定串
点我>>题目链接 稳定串 Time Limit: 1000ms Memory Limit: 65536KB 64-bit integer IO format: %lld Java ...
- 蓝桥杯 algo_5 最短路 (bellman,SPFA)
问题描述 给定一个n个顶点,m条边的有向图(其中某些边权可能为负,但保证没有负环).请你计算从1号点到其他点的最短路(顶点从1到n编号). 输入格式 第一行两个整数n, m. 接下来的m行,每行有三个 ...
- 最短路(dijskra+SPFA+Bellman)
最短路 Time Limit : 5000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissio ...
- 最短路(bellman)-hdu1217
Dijkstra算法是处理单源最短路径的有效算法,但它局限于边的权值非负的情况,若图中出现权值为负的边,Dijkstra算法就会失效,求出的最短路径就可能是错的. 这时候,就需要使用其他的算法来求解最 ...
- hdu-1317 XYZZY---Floyd判连通+bellman最短路
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1317 题目大意: 题意:有n个房间(n<=100),每个房间有一个点权(第1号房间和第n号房间 ...
- Til the Cows Come Home 最短路Dijkstra+bellman(普通+优化)
Til the Cows Come Home 最短路Dijkstra+bellman(普通+优化) 贝西在田里,想在农夫约翰叫醒她早上挤奶之前回到谷仓尽可能多地睡一觉.贝西需要她的美梦,所以她想尽快回 ...
- 最短路(Bellman)-Hdu1874畅通工程序
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1874 题目: 某省自从实行了很多年的畅通工程计划后,终于修建了很多路.不过路多了也不好,每次要从一个城 ...
随机推荐
- 虚拟机时间同步14 Aug 04:09:18 ntpdate[2941]: no server suitable for synchronization found
因为虚拟机经常挂起,所以需要时间同步 [root@slave1 /root]$ cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime cp: over ...
- 《深入理解Oracle 12c数据库管理(第二版)》PDF
一:下载获取位置: 二:本书图样: 三:本书目录: 图书目录: 第1章 安装Oracle 1.1 了解OFA 1.1.1 Oracle清单目录 1.1.2 Oracle基础目录 1.1.3 Oracl ...
- Confluence 6 修改 Home 目录的位置
当 Confluence 第一次启动的时候,Confluence 将会读取 confluence-init.properties 文件并从这个文件中确定如何去查找 Home 目录. 希望修改 home ...
- 【shell】两种字符串提取场景的实现
shell虽然比batch顺眼点儿,但还是老话,入门容易,精通难. 1.场景一是这样的,现有字符串的内容 name: tiger; age:18; location:china; 需求:提取每个属性的 ...
- Spark Streaming通过JDBC操作数据库
本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...
- Android开发实战一 百度SDK
一 申请百度API key 百度地图API:http://developer.baidu.com/map/ 百度地图开发者平台地址:http://developer.baidu.com/map/ .点 ...
- 【python】打印函数调用栈
traceback.print_stack()
- dbcp连接池出现的问题java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z
解决方案:mysql-connector 版本为 5.0.4 ,那么对应的 dbcp 和 pool 版本应该为 1.4 和 1.6 . 5.0.4 不应该使用 2.0 及以上版本的 dbcp 和 ...
- Jmeter测试demo
复制代码,保存为.jmx文件 需要安装插件: JMeterPlugins-ExtrasLibs E:\软件\apache-jmeter-3.0\lib\ext <?xml version=&qu ...
- 配置web pack loader 报错:Module build failed: Error: The node API for `babel` has been moved to `babel-core`.
报错如下 Module build failed: Error: The node API for `babel` has been moved to `babel-core`. 在我配置loader ...