#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxx=1002;
int p[maxx];//标记前驱节点
int dist[maxx];//标记源点到i之间的最短距离
int e[maxx][maxx];//记录路径
int vis[maxx];//标记该点是否被走过
int n,m;
void Dijstra(int u){//核心算法dist[u]=0;for(int i=0;i<n;i++){if(i!=u){dist[i]=e[u][i];p[i]=u;}}vis[u]=1;for(int i=0;i<n;i++){int temp=inf;int t=u;for(int j=0;j<n;j++){if(!vis[j]&&dist[j]<temp){temp=dist[j];t=j;}}if(t==u){break;}vis[t]=1;for(int j=0;j<n;j++){if(e[t][j]<inf){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",&n,&m)!=EOF){memset(p,0,sizeof(p));memset(vis,0,sizeof(vis));for(int i=0;i<=n;i++){//初始化dist[i]=inf;for(int j=0;j<=n;j++){if(i==j){e[i][j]=0;}else{e[i][j]=inf;}}}for(int i=0;i<m;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];}int x,y;scanf("%d %d",&x,&y);//输出起点和终点Dijstra(x);if(dist[y]<inf){//判断是否存在路径cout<<dist[y]<<endl;}else{cout<<-1<<endl; }}return 0;
}

HDU1874(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. HDU2112(Flody算法和Dijstra算法)

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

  4. HDU2544(Dijstra算法)

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

  5. HDU2066(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. 细说 iOS 消息推送
  2. 使用JMeter录制手机App脚本
  3. 数据中心业务价值永续的密码——施耐德电气全生命周期服务
  4. 字符输出流的续写和换行
  5. C语言无符号数运算问题
  6. 【PA2014】【BZOJ3709】Bohater(贪心,排序)
  7. 深度神经网络 轻量化_正则化对深度神经网络的影响
  8. 初学者怎样看懂python代码_初学者怎样看懂代码?
  9. ubnt ER-4添加PON stick模块替换光猫实战
  10. Gazbo下的无人车集群导航仿真
  11. 网利友联CEO王卫平受邀坐客飞官七直播间
  12. MP3参数,格式,术语有关一切内容详解。
  13. Codeforces Gym 100015 简要题解
  14. Elasticsearch(六)了解全文搜索
  15. 教授专栏13 | 陈雷:数据科学助力AI落地
  16. ASP.NET Core 中简单Session登录校验
  17. Ceph 线程池与工作队列
  18. Spring、Struts2+Spring+Hibernate整合步骤
  19. 4.4 基金排行数据(Python)
  20. 转:资本2010《CCTV财经频道中国证券市场投资策略报告》发布

热门文章

  1. 欢迎来到美多商城!-项目准备之项目介绍-项目需求分析-项目架构设计
  2. 爬虫之谷歌浏览器xpath helper插件的安装和使用
  3. 什么是近似算法?它适用于哪些问题?这篇文章给你答案
  4. Python中的数据结构
  5. UNet为什么在医学图像分割表现好?
  6. 都在抢论文第一作者,怎么解决?
  7. “阿里巴巴大数据系统体系”学习笔记-纲领篇
  8. 巨大的需求之下 人工智能如何更快落地?
  9. Label的作用是什么?是怎么用的?
  10. java Windows7 下环境变量设置