朴素Dijkstra

#include<bits/stdc++.h>
using namespace std;
const int inf=9999999;
bool book[105];
int mp[105][105];
int dis[105];
int n,m;
void Dijkstra(int s){int start=s;memset(dis,inf,sizeof(dis));book[s]=1;for(int i=1;i<=n;i++) dis[i]=min(dis[i],mp[start][i]);int minn;for(int i=1;i<n;i++){minn=inf;for(int j=1;j<=n;j++)if(minn>dis[j]&&!book[j]){minn=dis[j];start=j;}book[start]=1;for(int j=1;j<=n;j++) dis[j]=min(dis[j],dis[start]+mp[start][j]);   }
}
int main(){int a,b,c,i,j;freopen("in.txt","r",stdin);cin>>n>>m>>j;memset(mp,inf,sizeof(mp));for(i=0;i<m;i++){cin>>a>>b>>c;mp[a][b]=c; mp[b][a]=c;}for(i=1;i<=n;i++) mp[i][i]=0;Dijkstra(j);for(i=1;i<=n;i++)cout<<dis[i]<<' ';cout<<endl;return 0;
}

Dijkstra堆优化

#include<bits/stdc++.h>
using namespace std;
struct node{int val,num;//val离出发点的最短距离,num该点编号 bool operator<(const node &a) const{//运算符重载 return val<a.val;}
};
int dis[1005];
vector<pair<int,int> > a[1005];//fi下一点编号,se到下一点的距离
priority_queue<node> dij;//最小堆
int n,m,s;
int main(){int x,y,z;freopen("in.txt","r",stdin);cin>>n>>m>>s;for(int i=1;i<=n;i++) dis[i]=99999999;for(int i=1;i<=m;i++) {cin>>x>>y>>z;a[x].push_back(make_pair(y,z));//把相连的边保存}dis[s]=0;dij.push((node){0,s});while(!dij.empty()){int front=dij.top().num; dij.pop();for(int i=0;i<a[front].size();i++){//对front能到达的顶点进行松弛操作int to=a[front][i].first,va=a[front][i].second;if(dis[to]>dis[front]+va){dis[to]=dis[front]+va;dij.push((node){dis[to],to});}}}for(int i=1;i<=n;i++)cout<<dis[i]<<' ';cout<<endl;return 0;
}

测试样例

4 6 1
1 2 2
2 3 2
2 4 1
1 3 5
3 4 3
1 4 4

转载于:https://www.cnblogs.com/mch5201314/p/9978875.html

Dijkstra及其堆优化相关推荐

  1. 最短路[Dijkstra和堆优化的Dijkstra][Bellman-Ford和SPFA][Floyd最短路](更新中)

    文章目录 第一类:单源最短路 一 所有边权都是正数(Dijkstra) 朴素版Dijkstra(稠密图) 堆优化版Dijkstra(稀疏图) 二 存在负权边(BF和SPFA) 第二类:多源汇最短路(F ...

  2. 牛客 刺客信条 (bfs、dijkstra)+堆优化、dfs三种求解

    最短路 BFS+优先队列 DFS dijkstra+堆优化 题目描述 万物皆虚,万事皆允,玩过刺客信条的人对这句话应该都不会感到陌生 小A也是非常痴迷于这款游戏,正巧最近<刺客信条·奥德赛> ...

  3. PAT甲级1003 Emergency Dijkstra算法(堆优化版/朴素版)

    前言   最近花了很多的时间在写JAVA项目上面,疏忽了算法和数据结构的学习.最近突然醒悟基础更为重要,打算从今天开始每天抽出一些时间做下PAT甲级的题目.现有题库的前两题很简单,从第三题开始吧. 题 ...

  4. PAT甲级1131 Subway Map (30分):[C++题解]堆优化dijkstra、单源最短路、地铁地图、巧妙地建图套dijkstra模板!!

    文章目录 题目分析 题目链接 题目分析 原题: 来源:acwing 分析: 建图:所有能走到的点之间建立一条边,比如下面一条地铁线路有4站,它们是相通的,两两之间建一条边,边权是经过的站点数. 下面考 ...

  5. dijkstra堆优化(multiset实现-大大减小代码量)

    例题: Time Limit: 1 second Memory Limit: 128 MB [问题描述] 在电视时代,没有多少人观看戏剧表演.Malidinesia古董喜剧演员意识到这一事实,他们想宣 ...

  6. poj1511 InvitationCards 最短路 Dijkstra堆优化

    第一反应想到和 poj3268做法一样,先是从起点dj,然后将图反向,再次dj一次,求和即可.但是,数据O(n*n)过不去,所以需要使用dijkstra的堆优化! 淦,没用scanf结果超时了= = ...

  7. dij算法堆优化_迪杰斯特拉算法(Dijkstra) (基础dij+堆优化) BY:优少

    算法实现步骤: a.初始时,只包括源点,即S = {v},v的距离为0.U包含除v以外的其他顶点,即:U ={其余顶点},若v与U中顶点u有边,则(u,v)为正常权值,若u不是v的出边邻接点,则(u, ...

  8. dij算法堆优化_迪杰斯特拉算法(Dijkstra) (基础dij+堆优化) BY:优少(示例代码)...

    算法实现步骤: a.初始时,只包括源点,即S = {v},v的距离为0.U包含除v以外的其他顶点,即:U ={其余顶点},若v与U中顶点u有边,则(u,v)为正常权值,若u不是v的出边邻接点,则(u, ...

  9. AcWing 850. Dijkstra求最短路 II【最短路】【堆优化版Dijkstra】

    AcWing 850. Dijkstra求最短路 II 一.题目链接 二.题目分析 (一)算法标签 (二)解题思路 三.AC代码 四.其它题解 一.题目链接 AcWing 850. Dijkstra求 ...

  10. 寒假集训 最短路(I - Heavy Transportation)dijkstra+堆优化

    今天的集训学习了最短路dijkstra的堆优化,把时间复杂度从朴素版的O()降至了O(n*logn+m). 首先,先上一段朴素版的代码. void dijkstra() {dist[1] = 0;fo ...

最新文章

  1. java 多线程经典例子——生产者与消费者的问题
  2. Linux之系统文件管理
  3. 泛海精灵软件预发布统计报告 反馈
  4. 【深度学习论文】:U-Net
  5. chmod 与fchmod函数
  6. python 手机号码归属地 软件_Python实现的手机号归属地相关信息查询功能示例
  7. figure字体 latex_Latex字体大小和样式
  8. web前端开发面试题(二)
  9. 微信小游戏是个人尝试做游戏最好的选择
  10. 我的软件开发理念和流程
  11. 3D劲舞游戏 Dance Mixer 简体中文汉化版+常见问题(更新1.1补丁 汉化)
  12. 老梁说天下——慈善的红与黑
  13. mysql fabric HA测试
  14. python海龟画图代码大全_【程序源代码】python 海龟画图
  15. 在html页面上引用脚本文件,如何在html中调用JS文件
  16. Tita 绩效宝:绩效面谈的8个流程
  17. 现在准备看《金赛性学报告》
  18. [Kubic] Lines
  19. 我所经历的汶川大地震之三
  20. 《孙子兵法》与《战争论》对比

热门文章

  1. 有关C++的标准模板库(STL)的一些个人易错点
  2. net framework安装有什么影响_踢脚暖比地暖安装简单,升温快,为什么没有普及?这2点影响很大...
  3. lstm训练情感分析的优点_「情感分析领域」简单调研
  4. css3 animation 位置移动了怎么不占位置_手把手整理CSS3知识汇总【思维导图】
  5. 【UKIEPC2017:D】Deranging Hat(求序列a到a‘交换过程的具体实现)
  6. Pytorch之模型加载/保存
  7. Linux卸载系统盘,Linux磁盘管理(创建、卸载、挂载磁盘)
  8. 四年级计算机病毒与网络安全,《计算机病毒与网络安全》教学案例
  9. 极客大学架构师训练营--食堂就餐系统架构设计⽂档 -- 第一次作业
  10. mysql体系结构内存_mysql 内存体系结构--session