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算法 但是 ...
随机推荐
- Student elective system (VF)
博客插N+文件有些麻烦,索性PDF上传到百度文库 点击获取<数据库系统原理与应用>也有相应的word版本 word版加密密码:(博客链接加密后) 六.附录 数据库设计的基本步骤,按照规范设 ...
- git 提交代码到github错误处理
git push -u origin mastererror: The requested URL returned error: 403 Forbidden while accessing http ...
- linux哲学思想
linux哲学思想 1.一切皆为文件 linux将所有的对象几乎都抽象为文件,无论是硬件设备.还是通讯接口都当做文件处理,这样可以设计统一的访问控制操作(read();write();delete() ...
- loadrunner关联——对服务器返回的数据选择性提交
在跟进项目的过程中,才体会到自己之前闷头看书再写小小的测试程序验证的学习方式很没有效率,知道动态关联,却也只是会参数化式的动态关联,这种关联是我们预先知道要提交的数据而进行的关联:更高一级的可能就是使 ...
- jq load()方法用法
//鼠标划上去默认样式添加 listNow = getUrlParam("page"); $(".header").load("../file/hea ...
- iOS安全相关学习资料
https://github.com/zhengmin1989/iOS_ICE_AND_FIRE (冰与火代码) http://weibo.com/zhengmin1989?is_hot=1 (蒸米 ...
- jenkins安装配置-白痴教程
1. Maven安装 下载maven安装包,放置在usr/maven目录下:apache-maven-3.2.5-bin.tar.gz tar zxvf apache-maven-3.2.5-bin. ...
- 【工具】【电子设计】超屌的 fritzing 新建元件
fritzing 有多好,用了才知道,但是通常会遇到一个问题,他的元件库不一定够用,这时候就得自己做元件了,但是搜了一下网上没有相关的教程啊. 算了,去官网看英文吧.. 首先在最新版本不支持直接新建元 ...
- 在 Xcode 7 中安装 Alcatraz
http://www.jianshu.com/p/5c8ed25ad434 安装Xcode7后,继续采用官方方法安装Alcatraz,发现不成功.单独安装XVim也不成功.看了一下Alcatraz的i ...
- 面试复习(C++)之堆排序
#include <iostream> using namespace std; void Maxheap(int *a,int i,int heapSize)//最大数调整 { +;// ...