dijkstra单源最短路径算法不允许边权值为负,适用的图范围可以很大。
代码如下:

#include <iostream>
#include <queue>
#include <vector>
#include <string>
using namespace std;
const int N = 1e8;
bool done[N];
int dis[N];
const int INF = 1 << 30;
int n, m;struct edge {int from;int to;int w;
};
vector<edge>e[N];struct node {int id;int dis;friend bool operator<(const node &a, const node &b) {return a.dis > b.dis;}
};void dijkstra(int s) //s为起点
{priority_queue<node>q;memset(done, 0, sizeof(done));for (int i = 1; i <= n; i++)dis[i] = INF;memset(done, 0, sizeof(done));dis[s] = 0;q.push({s, dis[s]});while (q.size()) {node t = q.top();q.pop();if (done[t.id])continue;done[t.id] = true;for (int i = 0; i < e[t.id].size(); i++) {edge y = e[t.id][i];if (done[y.to])continue;if (dis[y.to] > y.w + t.dis) {dis[y.to] = y.w + t.dis;q.push({y.to, dis[y.to]});}}}
}int main() {while (cin >> n >> m, n, m) {for (int i = 1; i <= n; i++)e[i].clear();while (m--) {int a, b, c;cin >> a >> b >> c;e[a].push_back({a, b, c});e[b].push_back({b, a, c});}int start;cin >> start;//起点dijkstra(start);int no;while (cin >> no, no)//询问no点到起点的距离{cout << dis[no] << endl;}}return 0;
}

C++实现dijkstra单源最短路径算法-邻接表+优先队列相关推荐

  1. Dijkstra单源最短路径算法

    这里写目录标题 一.算法原理 二.MATLAB实现 三.参考文献 一.算法原理 迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法.是从一个顶 ...

  2. Dijkstra 单源最短路径算法 Java实现

    Dijkstra 单源最短路径算法 Java实现 算法导入 算法核心 复杂度分析 时间复杂度 空间复杂度 代码实现 参考资料 结尾 算法导入 在图论中,求最短路径有一个经典的算法 Dijkstra算法 ...

  3. AOJ GRL_1_A: Single Source Shortest Path (Dijktra算法求单源最短路径,邻接表)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_A Single Source Shortest Path In ...

  4. AOJ GRL_1_A: Single Source Shortest Path (Dijktra算法求单源最短路径,邻接表)

    题目链接:http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=GRL_1_A Single Source Shortest Path In ...

  5. C++实现有向图最短路径-Dijkstra单源最短路径算法

    #include <iostream> using namespace std; #define INFINE 99999999//假装我是无穷大 const int N = 1010; ...

  6. 单源路径分支界限java_java单源最短路径算法

    . .. .. . 单源最短路径的 Dijkstra 算法: 问题描述: 给定一... 并 应用贪心法求解单源最短路径问题.环境要求对于环境没有特别要求.对于算法实现,可以自由选择 C, C++, J ...

  7. 图论-单源最短路径算法(拓扑,Dijkstra,Floyd,SPFA)

    前言 单源最短路径是学习图论算法的入门级台阶,但刚开始看的时候就蒙了,什么有环没环,有负权没负权,下面就来总结一下求单源最短路径的所有算法以及其适用的情况. 单源最短路径 设定图中一个点为源点,求其他 ...

  8. 四种不同单源最短路径算法性能比较

    四种不同单源最短路径算法性能比较   一.最短路径问题描述 单源最短路径描述:给定带权有向图G=(V,E),其中每条边的权是非负实数.另外,还给定V中的一个顶点,称之为源.现在要计算从源到其他各顶点的 ...

  9. Bellman-Ford 单源最短路径算法

    Bellman-Ford 单源最短路径算法 Bellman-Ford 算法是一种用于计算带权有向图中单源最短路径(SSSP:Single-Source Shortest Path)的算法.该算法由 R ...

最新文章

  1. qt打开数据库mysql数据库文件怎么打开_qt打开数据库mysql数据库文件
  2. 我的简书两月记:数据可视化
  3. LSTM UEBA异常检测——deeplog里其实提到了,就是多分类LSTM算法,结合LSTM预测误差来检测异常参数...
  4. Windows上安装scapy
  5. 3-插入排序C实现(递增递减的简单转换)
  6. 定期存款可以提前取出来吗_定期存款、约定转存、自动转存和自己取出来转存有什么不同?...
  7. 类和对象编程(二):类访问修饰符
  8. [bzoj1791][ioi2008]Island 岛屿(基环树、树的直径)
  9. getdistance mysql_mysql 自定义函数获取两点间距离
  10. RS485/RS422接线图
  11. 1260.shift-2d-grid
  12. DoubleClick公司推出移动广告平台
  13. 【爬虫知识】浏览器开发者工具使用技巧总结
  14. 驱动设计思想(机制、策略、分离、分层)
  15. dry的原理_Dry Etch 工艺基本原理及良率剖析(经典讲解)
  16. redux中导入createStore中间有条线,解决方案及redux的使用。(react)
  17. 【开箱】B.FRIEND MK3机械式键盘!可换轴换灯,绝美双色金属底座!
  18. JS根据身份证号计算年龄
  19. lcg_magic算法笔记:冒泡排序
  20. lazarus中的try except

热门文章

  1. Android之JNI动态注册native方法和JNI数据简单使用
  2. Android之倍数提高工作效率的 Android Studio 奇技
  3. 【C语言简单说】十:小结
  4. python typeerror* wants int_python-TypeError:’int’对象是不可迭代的?
  5. 嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用
  6. 揭开不一样的世界,这5部纪录片绝对不能错过!
  7. “妈,你当年咋看上我爸的?”网友晒爸妈结婚照,笑抽了!
  8. 掌握神经网络,入门深度学习
  9. 程序猿专属成语 get√
  10. 史上最惨锦鲤即将来袭!奖品堪比5年高考3年模拟!