【数据结构笔记31】Dijkstra算法例题:旅游规划(双权重),以及其他推广
本次笔记内容:
图习题1 核心算法
图习题2 其他推广
文章目录
- 旅游规划问题
- 核心算法
- Dijkstra算法推广问题
- 要求数最短路径有多少条
- 要求边数最少的最短路
旅游规划问题
如上图,优先看权重1,如果权重1相同,看权重2。
核心算法
void Dijkstra(Vertex S)
{while (1){V = 未收录顶点中dist最小者;if (这样的V不存在)break;collected[V] = true;for (V的每个邻接点W)if (collected[W] == false)if (dist[V] + E(V, W) < dist[W]){dist[W] = dist[V] + E(V, W);path[W] = V;cost[W] = cost[V] + C(V, W);}else if ((dist[V] + E(V, W) == dist[W]) && (cost[V] + C(V, W) < cost[W])){cost[W] = cost[V] + C(V, W);}}
}
Dijkstra算法推广问题
要求数最短路径有多少条
- count[s] = 1;
- 如果找到更短路:count[W]=count[V];
- 如果找到等长路:count[W]+=count[V](注意,不是count[W]++)。
要求边数最少的最短路
- count[s] = 0;
- 如果找到更短路:count[W]=count[V]+1;
- 如果找到等长路:count[W]=count[V]+1。
【数据结构笔记31】Dijkstra算法例题:旅游规划(双权重),以及其他推广相关推荐
- PTA 数据结构与算法 7-9 旅游规划 (25 point(s))
7-9 旅游规划 (25 point(s)) 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径 ...
- 数据结构——最短路径之Dijkstra算法(与最小生成树的prime算法很像,建议一起看)
最短路径之Dijkstra算法 (一)Dijkstra算法 单源最短路径:就是从某一个顶点出发,到图中任意顶点之间的最短路径: [算法概述]:Dijkstra算法适用于解决单源最短路径的问题.即:从源 ...
- dijkstra 算法_路径规划算法总结
Dijkstra算法 Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算一个节点到其他所有节点的最短路径.主要特点是以起始点为中心向外层层扩展,直到扩展到终点为止(BFS.prime ...
- Floyd算法、Dijkstra算法例题
二 1.用Floyd算法求解下图各个顶点的最短距离. 2.对于下图使用Dijkstra算法求由顶点a到顶点h的最短路径. 2.解析 1)用Floyd算法求解各个顶点的最短距离. 第一步:画出初始化距离 ...
- 数据结构笔记——最短路径BFS算法
写在前面:科班出身,应届考研党,愿21考研成功上岸,冲冲冲! 目录 一.最短路径问题 二.BFS求无权图的单源最短路径 三.代码实现 四.总结 一.最短路径问题 单源最短路径--BFS算法.Dijks ...
- dijkstra算法为什么不能计算负权重?
这几天在看迪杰斯特拉算法(dijkstra算法)的时候,了解到这个算法不能够计算负权重,这让我很纳闷???为什么呢???下面我按照我理解的解释一番,若有错误希望阅读者能够评论指出,不胜感激. 我们 ...
- 漫画:数据结构之最短路径 Dijkstra 算法的优化 | 技术头条
作者小灰,本文经授权转载自程序员小灰(ID:chengxuyuanxiaohui). 在<漫画:图的 "最短路径" 问题>一文中小灰介绍了单源最短路径算法 Dijkst ...
- 【dijkstra模板】旅游规划 (25 分)
立志用最少的代码做最高效的表达 有了一张自驾旅游路线图,你会知道城市间的高速公路长度.以及该公路要收取的过路费.现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径.如果有若干条 ...
- 【数据结构笔记03】算法实例:最大子列和
本次笔记内容: 1.3.1 应用实例_算法1&2 1.3.2 应用实例_算法3 1.3.3 应用实例_算法4 文章目录 最大子列和问题 算法1:把所有子列拿出来比较(暴力法) 算法2:不做重复 ...
最新文章
- CSharpGL(1)从最简单的例子开始使用CSharpGL
- 快速部署ldap服务
- java equals() output_Java中的==和equals
- 周期T与频率f数量级对应关系(MHz--μs)
- Android Studio创建侧滑菜单使用心得
- java diamond 有什么用_Diamond语法何时在Java 8中不起作用?
- eoLinker-API_Shop_知识类API调用的代码示例合集:驾考题库、ISBN书号查询等
- 华硕笔记本k555拆机图解_华硕K43系列笔记本电脑拆机清灰图文超细版教程
- 双轴旋转云台plc控制_Robomaster电控入门(7)双轴云台控制
- 全国各省电信、联通、网通、铁通DNS列表
- C++学习 十五、类继承(4)基类方法重写,隐藏
- swift-集成touch id功能 指纹验证
- 日期计算器输入天数计算日期_如何在Windows计算器中执行日期计算
- 小程序的横向二级顶部导航条,可以切换、拖动、二级定位在一级的下面,高度怎么办
- HMI-47-【多媒体】Title界面实现 2
- 费雪分离定理的证明与评价
- unix/Linux BSD以及System V---认知
- 在origin中画一条Y=x的自定义函数曲线
- CSS动画 图片或者文字上下来回循环上下移动
- c语言中 n的意义,\n\n在c语言中是什么意思?_后端开发
热门文章
- linux命令地址,[命令] Linux IP 命令 IP(管理地址)
- oracle影响性能,影响Oracle性能的几个重要参数
- 【Kettle】Win7启动Spoon.bat闪退
- 【Oracle】SCOPE=MEMORY|SPFILE|BOTH
- warning: refname ‘HEAD‘ is ambiguous解决方法
- c#解决浏览器跨域问题
- 使用弹性布局来解决令人烦恼的垂直居中问题~~
- 什么是Makefile.am和Makefile.in?
- Git中的“起源”是什么?
- Java为什么不允许覆盖静态方法?