DAG单源最短路径
来源:互联网 发布:次世代模型师月薪知乎 编辑:程序博客网 时间:2024/05/01 15:56
1、基本算法
我们知道DAG上一定存在拓扑排序,且若在有向图G中从顶点Vi->Vj有一条路径,则在拓扑排序中顶点Vi一定在顶点Vj之前,而因为在DAG图中没有环,所以按照DAG图的拓扑排序进行序列最短路径的更新,一定能求出最短路径。
2、基本步骤
处理顶点V时,对每条离开的边<v,u>执行松弛运算,若果<v,u>给出从源点到u的一条最短路径(经过v),则更新到u的最短路径。这个过程将检查图中每个顶点的所有路径,同时,拓扑排序确保按正确的顺序处理顶点。
4、注意事项
图必须是DAG(有向无环图),跟差分约束类似,对于多源点向单源点转化时新加入的节点可以通过特殊的预处理老避免在实际代码中加入这个节点,在DAG图上的单源最短路径的代码中,是将入度为0的节点(也就是前面所说的多源点)的d[]值设为0,其他的d值设为INF,也就是相当于虚拟节点Vs更新之后的结果。
伪代码:
(1)初始化,入度为0的节点d为0,其他的节点d值为INF。
(2)对DAG进行拓扑排序,得到拓扑序列。
(3)按照拓扑序列遍历DAG的点,对于每个点u,遍历其所有的出边<u,v>,如果d[v] > d[v] + length<u,v>,则更新。
0 0
- DAG单源最短路径
- DAG单源最短路径
- DAG单源最短路径
- DAG单源最短路径
- DAG单源最短路径
- 算法导论 单源最短路径 DAG-SHORTEST-PATHS
- 单源最短路径(三)————Dag实现
- DAG图上单源最短路径 poj 3249
- poj2594(DAG最小路径覆盖)
- 图--有向无负权回路的单源最短路径 DAG 算法导论p365
- POJ3249 工作难题(DAG有向无环图的单源最短路径)
- 应用拓扑排序来解决DAG(directed acylic graph)的单源最短路径问题
- POJ 3249 Test for Job DAG图上的单源最短路径
- POJ 3249 Test for Job (DAG图上的单源最短路径) 最详细的图解
- DAG图中的关键路径算法
- POJ 1548 Robots(DAG最小路径覆盖)
- HDU 4160 Dolls(DAG最小路径覆盖)
- POJ1422 Air Raid 【DAG最小路径覆盖】
- 初窥Cocos2d-x内存管理机制(2)
- 【script】一个打包应用的脚本
- ubuntu 64位中安装安卓应用包解析工具apktool
- linux source命令
- PJNATH介绍 -- 用于NAT穿透的ICE, STUN和TURN的开源库
- DAG单源最短路径
- android:layout_weight的巧妙应用
- 总是报The specified child already has a parent. You must call removeView() on the child's parent first.
- 严重: Skipped installing application listeners due to previous error(s)
- 输出所有排列组合
- git am时出现Dirty index: cannot apply patches (dirty: hello.c)的解决方法
- A Letter of Application
- 【script】一个打渠道号的脚本
- 陈庆华:大数据让BI更精彩