hdu 2066
ps:我天...之前看了迪杰斯特拉..现在这题要用到floyd。。就是先建一个图,然后从列开始遍历,每列里遍历行,行又对应每列...
从A列开始遍历每行,比如遍历到B,这时候B->A知道是2,接着又遍历第一行,比如对应到C,就是B->A->C,如果B->A->C比B->C小,就把B->C更新,
感觉Floyd就是求每个点是否必须出现在某两个点之间,找出最短路径
另外这题比较坑的是,a,b之间可以有多条路......WA了几次...
代码:
#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}
#include "stdio.h"
#define MAX 1000000
int map[][];
int off[];
int begin[];
int want[];
int T,S,D,a,b,c,time;
void floyd(int t);
int main(){
int i,j,k,t,min1;
while(~scanf("%d%d%d",&T,&S,&D)){
t=;
for(i=;i<=;i++){
for(j=;j<=;j++){
map[i][j]=MAX;
}
}
for(i=;i<=T;i++){
scanf("%d%d%d",&a,&b,&c);
if(map[a][b]>c){
map[a][b]=c;
map[b][a]=c;
}
if(a>t){
t=a;
}
if(b>t){
t=b;
}
}
for(i=;i<=S;i++){
scanf("%d",&begin[i]);
}
for(i=;i<=D;i++){
scanf("%d",&want[i]);
}
floyd(t);
min1=MAX;
for(i=;i<=S;i++){
for(j=;j<=D;j++){
if(map[begin[i]][want[j]]<min1){
min1=map[begin[i]][want[j]];
}
}
}
printf("%d\n",min1);
}
return ;
}
void floyd(int t){
int i,j,k;
for(j=;j<=t;j++){
for(i=;i<=t;i++){
if(map[i][j]<MAX){
for(k=;k<=t;k++){
if(map[i][j]+map[j][k]<map[i][k]){
map[i][k]=map[i][j]+map[j][k];
}
}
}
}
}
}
hdu 2066的更多相关文章
- # H - H HDU - 2066 (多起点、多终点问题)
H - H HDU - 2066 (多源点.多汇点问题) 一个图上,有M条边,Z个出发点,Y个终止点.求一条最短路,其中起点是Z中的任意一点,终点是Y中任意一点. Input 输入数据有多组,输入直到 ...
- hdu 2066 一个人的旅行
题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷 ...
- hdu 2066 一个人的旅行 Dijkstra
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意分析:以草儿家为原点,给出城市间相互抵达的时间,给出草儿想去的城市,求最短时间.典型的单源最 ...
- hdu 2066 一个人的旅行(最短路问题)
最短路································· 类似的问题还有好多不会!慢慢学吧!!!!. 进步,哪怕每天一点也行! (恋爱不是小事,确实小事的积累!(听着酷狗音乐台说的,很 ...
- hdu 2066 ( 最短路) Floyd & Dijkstra & Spfa
http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...
- HDU 2066 一个人的旅行(dijkstra水题+判重边)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目大意:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有 ...
- hdu 2066 一个人的旅行 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目意思:给出T条路,和草儿家相邻的城市编号,以及草儿想去的地方的编号.问从草儿家到达草儿想去的 ...
- hdu - 2066 一个人的旅行(基础最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=2066 把与草儿相连的城市最短距离置为0,然后进行dijkstra,在t个城市里找出距离最近的一个即可. #inc ...
- HDU 2066 最短路floyd算法+优化
http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...
随机推荐
- mongo 相关命令
mongo导入数据: 1. 先进入找到mongo 安装目录 执行 ./mongo 进入mongo 2. mongorestore -u 用户名 -p 密码 -d 数据库 —drop 文件存在路径 显示 ...
- 日期时间组件 - layui.laydate
全部参数 一.核心方法:laydate(options); options是一个对象,它包含了以下key: '默认值' { elem: '#id', //需显示日期的元素选择器 event: 'cli ...
- 添加as源码
http://blog.csdn.net/zhang31jian/article/details/23258065
- Flask-admin使用经验技巧总结
笔者是看狗书入门的flask,狗书上对于flask-admin这个扩展并没有进行讲解,最近因为项目需要,学习使用flask-admin,瞬间体会到了flask开发的快速.扩展的强大 Flask-adm ...
- JavaScript判断IE版本
判断IE兼容到IE11 IE浏览器与非IE浏览器的区别是IE浏览器支持ActiveXObject,但是非IE浏览器不支持ActiveXObject.在IE11浏览器还没出现的时候我们判断IE和非IE经 ...
- 全球Top10最佳移动统计分析sdk
监视应用程序的分析帮助您优化您的移动应用程序的某些元素,它也给你正确的洞察到你的营销计划.没有手机的分析软件包会有缺乏必要的数据,以帮助你提高你的应用程序需要.如果你是一个软件开发者或出版商为Goog ...
- js 读取 地址栏参数 转
用JS获取地址栏参数的方法(超级简单) 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var re ...
- 开博客这么久以来,第一篇技术文章,python与c的接口对接
在博客园开博客已经有了蛮长时间了,但是从来只是看别人的文章,自己却从未写过一篇技术文章,深表惭愧.内心还是希望能够给大家提供一些帮助的,希望这第一篇技术博客,能够给大家一些帮助.闲话少叙,开始正文. ...
- 以forin的方式遍历数组时进行删除操作的注意点
今天在修改某项需求的时候,需要在遍历的时候将匹配项移除掉,采用的时forin的方式遍历,然后运行的时候却crash掉了 for (NSString*str in self.btnArray) { if ...
- 为OpenEdx中lms注册模块扩展字段
最近遇到需求,需要扩展注册的字段,例如新增手机mobile字段 1.打开register.html文件 路径为\edxapp\edx-platform\lms\templates\register ...