这道题就是模版题,直接上代码:

Dijstra算法
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<vector>
#include<queue>
#include<cstdio>
using namespace std;
typedef long long ll;
const int maxx=1005;
const int inf=0x3f3f3f3f;
int dist[maxx];
int pre[maxx];
int vis[maxx];
int e[maxx][maxx];
int n,m,k;
void Dijstra(int n,int u){for(int i=1;i<=n;i++){dist[i]=e[u][i];pre[i]=u;}dist[u]=0;vis[u]=1;for(int i=1;i<=n;i++){int temp=inf;int t=u;for(int j=1;j<=n;j++){if(!vis[j]&&dist[j]<temp){temp=dist[j];t=j;}}if(t==u)break;vis[t]=1;for(int j=1;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];pre[j]=t;}}}}
}
int main(){int t;while(scanf("%d %d",&n,&m)!=EOF){memset(vis,0,sizeof(vis));memset(pre,0,sizeof(pre));memset(vis,0,sizeof(vis));for(int i=1;i<=m;i++){dist[i]=inf;for(int j=1;j<=m;j++){e[i][j]=inf;}}for(int i=1;i<=n;i++){int a,b,cost;scanf("%d %d %d",&a,&b,&cost);if(e[a][b]>cost){e[a][b]=e[b][a]=cost;}}Dijstra(m,m);cout<<dist[1]<<endl;}return 0;
}

poj2387(Dijstra算法)相关推荐

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

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

  2. HDU1874(Dijstra算法)

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

  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. poj2387(SPFA算法)

    1.建⽴⼀个队列,初始时队列⾥只有起始点,再建⽴⼀个表格记录起始点到所有点的最短路径(该表格的初始值要赋为极⼤值,该点到他本⾝的路径赋为 无穷大).然后执⾏松弛操作,⽤队列⾥有的点作为起始点去刷新到所 ...

最新文章

  1. java soa例子_哪位大牛能举个实例讲下SOA与传统架构的区别?
  2. IDEA @Override is not allowed when implementing interface method(转载)
  3. 敏捷测试与普通测试的区别
  4. 【深度学习笔记】多层感知机,非权值共享型卷积神经网络,权值共享型卷积神经网络之间的关系
  5. C++面向对象程序设计实践——任务与指导书(1)
  6. java安装下载步骤_java下载安装教程
  7. 【原创】AE套用模板教程
  8. 型机器人同人本子_唯美的人×机器人漫画《純情愛玩生化女友》
  9. 2022年了,Windows Vista还能用吗?
  10. 注册机偷懒写法1、之直接扣代码
  11. Pumpkin Raising Walk Through
  12. Spring Boot搭建Web服务器,实现用户注册登录功能
  13. 用了接口还有必要用抽象类吗?
  14. C语言函数:toupper
  15. css网站结课设计,毕业设计(论文)-《DIV+CSS》课程网站的开发.doc
  16. 电子数据取证之网站分析和重构基础
  17. Apache ab压力测试说明
  18. JSP页面%@ ...%是 什么意思
  19. STM32F103之系统架构
  20. linux 没有jstack_linux jstack安装

热门文章

  1. pycharm中的terminal解释器和project 解释器不统一问题
  2. 【网络协议】TCP分段与IP分片
  3. VUE的data数据对象
  4. Tomcat版本不同,功能区别也是很大!
  5. OPPOr7sm恢复出厂设置一直卡在开机界面
  6. 基于OpenCV的数字识别系统
  7. 程序员必须掌握哪些算法?
  8. 跨模态学习在三维语义分割领域适应中的应用
  9. phpmyadmin底部出现提示“The configuration file now needs a secret passphrase (blowfish_secret). ”...
  10. 模拟PLC 的圆弧插补方式在VC中绘制圆弧