algorithm - 具有黄色和黑色边缘的最短路径

标签 algorithm graph graph-theory shortest-path

给定有向加权图 G=(V,E)。
没有负加权边。
每条边都是彩色的(黑色或黄色)。

我需要找到一个算法来找到给定 s ∈ V 的最短路径,而每条路径都必须遵循以下规则:color(vi,vi+1)=color(vi+3,vi+4), ∀i :1 ≤ i ≤ k-4 而路径为v1 → ... → vk。 该算法需要在 O(|V|+|E|log(|V|)) 内。

最佳答案

提示:尝试修改 Dijkstra 算法以存储两个不同的优先级队列:一个包含从起始节点到以黄色边结束的目标节点的路径成本,以及从起始节点开始的路径成本到以黑色边缘结束的目标节点。然后,更新逻辑以找到下一个节点以选择将两个队列考虑在内,并更改减少键逻辑以确保您使用正确的信息更新正确的队列。这可以通过普通 Dijkstra 算法的常数因子开销来完成,因此需要时间 O(|E| + |V| log |V|)。

希望这对您有所帮助!

关于algorithm - 具有黄色和黑色边缘的最短路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14127039/

相关文章:

arrays - 如何获取两个数组的不同元素

algorithm - 如何动态查找连通分量

python - 如何使用不同颜色绘制 networkX 图的路径

algorithm - 如何将图划分为可能重叠的部分,使得部分中包含的任何顶点与边界的距离至少为 k?

algorithm - 改进的 BFS 树遍历

algorithm - 创建基于偏好的调度算法

java - 如何在java中绘制水平误差线?

javascript - 三.js缩放时隐藏元素

algorithm - DAG - 确保存在单一源和单一汇的算法

algorithm - 如果我们可以在运行 Bellman Ford 算法后再松弛一次边缘,为什么会存在负循环