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的更多相关文章

  1. # H - H HDU - 2066 (多起点、多终点问题)

    H - H HDU - 2066 (多源点.多汇点问题) 一个图上,有M条边,Z个出发点,Y个终止点.求一条最短路,其中起点是Z中的任意一点,终点是Y中任意一点. Input 输入数据有多组,输入直到 ...

  2. hdu 2066 一个人的旅行

    题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷 ...

  3. hdu 2066 一个人的旅行 Dijkstra

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题意分析:以草儿家为原点,给出城市间相互抵达的时间,给出草儿想去的城市,求最短时间.典型的单源最 ...

  4. hdu 2066 一个人的旅行(最短路问题)

    最短路································· 类似的问题还有好多不会!慢慢学吧!!!!. 进步,哪怕每天一点也行! (恋爱不是小事,确实小事的积累!(听着酷狗音乐台说的,很 ...

  5. hdu 2066 ( 最短路) Floyd & Dijkstra & Spfa

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 今天复习了一下最短路和最小生成树,发现居然闹了个大笑话-----我居然一直写的是Floyd,但我自己一直以 ...

  6. HDU 2066 一个人的旅行(dijkstra水题+判重边)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目大意:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有 ...

  7. hdu 2066 一个人的旅行 解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2066 题目意思:给出T条路,和草儿家相邻的城市编号,以及草儿想去的地方的编号.问从草儿家到达草儿想去的 ...

  8. hdu - 2066 一个人的旅行(基础最短路)

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 把与草儿相连的城市最短距离置为0,然后进行dijkstra,在t个城市里找出距离最近的一个即可. #inc ...

  9. HDU 2066 最短路floyd算法+优化

    http://acm.hdu.edu.cn/showproblem.php?pid=206 题意 从任意一个邻居家出发 到达任意一个终点的 最小距离 解析 求多源最短路 我想到的是Floyd算法 但是 ...

随机推荐

  1. 【转】mysql查询结果输出到文件

    转自:http://www.cnblogs.com/emanlee/p/4233602.html mysql查询结果导出/输出/写入到文件 方法一: 直接执行命令: mysql> select ...

  2. flume坑之channel.transactionCapacity和HdfsSink.batchSize

    不说过程了,直接说结果!一对相连接的channel-HdfsSink,无意间配置如下:...agent.channels.common-channel.transactionCapacity=10.. ...

  3. easy ui datagrid 让某行复选框不能选中

    //百度查找出来的 onLoadSuccess: function(data){//加载完毕后获取所有的checkbox遍历             if (data.rows.length > ...

  4. UIKit框架

    在今后的应用程序构建中,会陆续使用各式各样的控件,因此UIKit框架的引入是必不可少的! 一.简介 UIKitk框架提供一系列的Class(类)来建立和管理iPhone OS应用程序的用户界面接口.应 ...

  5. String的方法

    String str = "djsfkskfjs" . str.indexof():括号里面写你查找的字符,从strd的第一个开始找,找到第一个相同的字符,得到该字符的数组下标. ...

  6. html5之canvas画图基础

    HTML5+CSS3的好处是,你可以编写一个页面分别用于不同的平台,只需要设置不同的css样式就可以了,现在基本主流浏览器都支持全新的HTML5和CSS3,因为它的跨平台开发.因为是原生代码所以它的页 ...

  7. 【Python⑤】python序列---list和tuple

    sequence 序列 sequence(序列)是一组有顺序的对象的集合.序列可以包含一个或多个元素,也可以没有任何元素. 我们之前所说的基本数据类型,都可以作为序列的对象.对象还可以是另一个序列.序 ...

  8. 在VMware中安装ubuntu出现菜单栏无法显示的情况

    在VMware中安装ubuntu出现菜单栏无法显示的情况 其实这个问题的原因时由于VMware中enable了3D图形加速界面,只需要shutdown当前运行的虚拟机,然后在虚拟机,设置,显示器,3D ...

  9. 爬虫:selenium + phantomjs 解决js抓取问题(一)

    selenium模块主要用来做测试,模拟键盘.鼠标来操作浏览器. phantomjs 就像一个无界面的浏览器一样. 两个结合能很好的解决js抓取的问题. 测试代码: #coding=utf-8 fro ...

  10. js图片拖放原理(很简单,不是框架,入门基础)

    <html> <meta> <script src='jquery-1.8.3.min.js'></script> <script> /* ...