#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<stack>
#include<vector>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxx=1005;
int p[maxx];//标记前驱节点,但是这道题用不到
int dist[maxx];//记录源点到i之间的最短距离
int e[1005][1005];//记录路径
int n,m,t;
int vis[maxx];//标记这个点是否被走过
void Dijstra(){for(int i=0;i<=1000;i++){dist[i]=e[0][i];p[i]=0;}vis[0]=1;for(int i=1;i<1000;i++){int temp=inf;int t;for(int j=1;j<=1000;j++){if(!vis[j]&&dist[j]<temp){temp=dist[j];t=j;}}vis[t]=1;for(int j=1;j<=1000;j++){if(!vis[j]&&dist[j]>dist[t]+e[t][j]){dist[j]=dist[t]+e[t][j];p[j]=t;}}}
}
int main(){while(scanf("%d %d %d",&n,&m,&t)!=EOF){memset(p,0,sizeof(p));memset(vis,0,sizeof(vis));for(int i=0;i<=1001;i++){for(int j=0;j<=1001;j++){e[i][j]=inf;}}for(int i=0;i<n;i++){int a,b,cost;cin>>a>>b>>cost;e[a][b]=e[a][b]>cost?cost:e[a][b];//如果存在多条路径且保存最短的路径e[b][a]=e[a][b];}for(int i=0;i<m;i++){int x;scanf("%d",&x);e[0][x]=0;e[x][0]=0;//源点到相连城市之间距离为零}Dijstra();int mininf=inf;for(int i=0;i<t;i++){int x;scanf("%d",&x);if(mininf>dist[x]){mininf=dist[x];}}cout<<mininf<<endl;}return 0;
}

HDU2066(Dijstra算法)相关推荐

  1. poj2387(Dijstra算法)

    这道题就是模版题,直接上代码: Dijstra算法 #include<iostream> #include<algorithm> #include<cmath> # ...

  2. Dijstra算法-------为了纪念,等以后看的时候方便

    杭电problem2066 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total ...

  3. HDU1874(Dijstra算法)

    #include<iostream> #include<algorithm> #include<cstring> #include<cmath> usi ...

  4. HDU2112(Flody算法和Dijstra算法)

    采用Flody算法时一定要注意那个cnt的下标,我也是在这里卡了一定的时间,可能是我的经验还远远不够. 方法一: #include<iostream> #include<algori ...

  5. HDU2544(Dijstra算法)

    #include<iostream> #include<algorithm> #include<cstring> #include<cmath> #in ...

  6. HDU3970(Dijstra算法)

    #include<iostream> #include<algorithm> #include<cstring> #include<cmath> usi ...

  7. Dijstra算法求最短路径

    参考博客:http://blog.51cto.com/ahalei/1387799        与Floyd-Warshall算法一样这里仍然使用二维数组e来存储顶点之间边的关系,初始值如下.   ...

  8. [hiho 23]单源最短路-Dijstra算法

    题目描述 维护一个集合,集合中的元素与点u的最短距离已经确定,求出集合内元素所能到达的点到点u的距离,取最短的距离对应的点加入集合直到集合包含点v. 每次更新距离只与新加入集合的点有关. #inclu ...

  9. java迪杰斯特拉算法实例,Java 图的最短路径dijstra(迪杰斯特拉)算法和拓扑排序

    一.图的最短路径从某顶点出发,沿图的边到达另一顶点所经过的路径中,各边上权值之和最小的一条路径叫做最短路径 图的最短路径有许多重要的应用. 例如:上图中v0-v8有9个点,可以看做不同的地点,现在要规 ...

最新文章

  1. 使用 bcp 指定数据文件中的前缀长度
  2. 《Revisiting Salient Object Detection! Simultaneous Detection, Ranking, and Subitizing of Multiple Sa
  3. bom头解释方法和去掉方法
  4. 云服务器如何导入文件,如何将文件导入云服务器中
  5. 网络安全对现在乃至以后,对人们的安全有着重大的保障
  6. 裂变实操:1个模型+4个步骤,教你打造流量的自循环系统
  7. Java 中==和 equals 的区别, equals 和 hashCode 的区别
  8. Round Numbers
  9. Django Bootstrap开发笔记02 - 模板
  10. 智能化连锁门店解决方案
  11. 为什么说强化学习是针对优化数据的监督学习?
  12. ubuntu16.0.4安装mysql5.7以及设置远程访问
  13. 【MySQL】时间格式转换 DATE_FORMAT函数篇
  14. CentOS7 一键安装KMS服务【整理】
  15. Ubuntu16.04编译Android源码系列一——7.1.2和4.4及踩坑
  16. 怎么创建Gitee仓库,并将项目源码上传到Git?
  17. 第四篇:UE4视角切换节点,Possess和Set View Target With Blend的区别
  18. 百度网盘官方免费极速下载(不定期更新)
  19. python 调用航空公司的接口 获取机票数据 api简单案例
  20. c/c++ 报错:非标准语法,使用&创建指向成员的指针的解决办法

热门文章

  1. 自然语言处理(NLP)之使用LSTM进行文本情感分析
  2. 有必要总结一下:matlab图像灰度调整——imadjust函数的使用
  3. SLAM 技术之对于扫描精度的影响及改进
  4. 详解|工业机器人内部机构详解
  5. ​专为初学者设计——最小的神经网络
  6. EP936E的IIC
  7. zabbix 小纪录
  8. python面向对象编程 -- 封装、继承
  9. 设计模式-建造者模式(05)
  10. 据廖雪峰python3教程----python学习第二天