Problem Description

虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰富自己的阅历,还可以看美丽的风景……草儿想去很多地方,她想要去东京铁塔看夜景,去威尼斯看电影,去阳明山上看海芋,去纽约纯粹看雪景,去巴黎喝咖啡写信,去北京探望孟姜女……眼看寒假就快到了,这么一大段时间,可不能浪费啊,一定要给自己好好的放个假,可是也不能荒废了训练啊,所以草儿决定在要在最短的时间去一个自己想去的地方!因为草儿的家在一个小镇上,没有火车经过,所以她只能去邻近的城市坐火车(好可怜啊~)。

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

原题链接

这题太恶心了,记录的n一定要加1,数组一定要开大一位,是从1开始的,因为没注意这个,没取n等号,WA了几个小时。另外,Floyd剪枝一个for的判断就可以c++过了

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<iostream>
using namespace std;
typedef long long ll;ll T,S,D;
int n,a,b,c;int dp[1010][1010];
int A[1010];
int B[1010];#define INF 0x3f3f3f3fint floyd() {for(int k=1;k<=n;k++)for(int i=1;i<=n;i++)if(dp[i][k]!=INF)for(int j=1;j<=n;j++)if(dp[i][j] > dp[i][k] + dp[k][j])dp[i][j] = dp[i][k] + dp[k][j];int ans = INF;for(int i=0;i<=S;i++)for(int j=0;j<D;j++)ans = min(ans, dp[A[i]][B[j]]);return ans;
}int main() {       while(scanf("%lld %lld %lld",&T,&S,&D)!=EOF) {for(int i=0;i<1010;i++)for(int j=0;j<1010;j++)if(i!=j)dp[i][j] = INF;elsedp[i][j] = 0;n = 0;for(int i=0;i<T;i++) {scanf("%d%d%d",&a,&b,&c); n = max(n, max(a, b));if(c<dp[a][b])dp[a][b] = dp[b][a] = c;}for(int i=0;i<S;i++)cin>>A[i];for(int i=0;i<D;i++)cin>>B[i];printf("%d\n",floyd());}return 0;
}

hdu2066 一个人的旅行 floyd相关推荐

  1. HDU2066 一个人的旅行【最短路径+Floyd算法】

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submis ...

  2. HDU-2066 一个人的旅行

    HDU-2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)   P ...

  3. hdu2066一个人的旅行(disjkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  4. HDU2066一个人的旅行(dijkstra)

    一开始拿到这个题感觉floyd可能会超,还是写了写,果然1WA+1TLE,之后觉得用dijkstra试试看看S和D会不会比较小,还是1WA+1TLE,最后还是借鉴了别人的做法. 把他的家作为起点,与他 ...

  5. HDU2066一个人的旅行(SPFA)

    问题描述 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗〜),但是草儿仍然很喜欢旅行,因为在旅途中会遇见很多人(白马王子, ^ 0 ^),很多事,还能丰富自己的阅历,还可以看美丽 ...

  6. HDU2066一个人的旅行---(多起点多终点最短路径)

    http://acm.hdu.edu.cn/showproblem.php?pid=2066 一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memo ...

  7. 【算法】最短路径--Hdu2066 一个人的旅行

    一个人的旅行 Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^), ...

  8. HDU-2066 一个人的旅行(dijkstra)

    一个人的旅行 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  9. HDU2066 一个人的旅行

    Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王子,^0^),很多事,还能丰 ...

最新文章

  1. 5G时代下,边缘计算产品的未来展望
  2. Java Web之SpringMVC 进行数据回显
  3. 计算机科学与控制面试说课,计算机科学与技术专业的说课.pptx
  4. MySQL: ERROR 1040: Too many connections”的异常情况1
  5. 2018 Wannafly summer camp Day3--Knight
  6. OpenCV+python图像处理基础操作
  7. VScode 透明背景设置
  8. 计算机打印中 进纸盘2,软件、计算机和打印机接口问题-HP.PDF
  9. 传感器 - 距离传感器
  10. 通过 JavaScript调用Asp.net(C#)后台方法
  11. 解决过拟合现象的六种姿势
  12. 家用计算机 阵列,家用电脑如何建立RAID?
  13. 2021春节档电影数据分析
  14. 用VB评估数学表达式
  15. simplest_ffmpeg_decoder_pure.c
  16. android蓝牙python,android – 使用SL4A(Python)和蓝牙
  17. 使用icacls命令设置目录及其子目录、文件的所有权限
  18. [世界杯] 巴西 vs 克罗地亚 1:0
  19. 转载:KOF97坂琦良心得
  20. Jquery中把一段html代码动态写入到DIV中(简单实例)

热门文章

  1. c语言 createwindow 文本框,FindWindowExA 怎么找文本框的句柄。最好有原码
  2. xilinx fpga学习笔记2
  3. 【Solidity】Solidity by Example
  4. 自托管Sentry文档翻译
  5. 苹果创始人Steve Wozniak:程序员的好奇心是与生俱来的
  6. H3C G3 配置raid和远程管理
  7. 【Python】逆向爬虫-----模拟试客联盟登录(RSA)
  8. tensorflow2.3实现猫狗数据集图像语义分割(一)
  9. 文件属修改器!(创建时间、修改时间等属性修改)
  10. Ardunio开发实例-TCS3200颜色传感器