【发布时间】:2017-07-06 04:55:13
【问题描述】:
我试图解决一个本地编程竞赛问题。问题基本上是关于在加权图中找到最短路径。我对这些类型的问题很陌生,我认为我可以使用 Dijkstra 的算法。但是,有一个小问题 - 某些值会有所不同,具体取决于当前路径的情况。
问题
有两种类型的权重:普通权重和有条件的权重(我们称它们为 K)。条件是这样的:一旦你通过权重为 K 的边,所有其他类型为 K 的权重的值为 0。这带来了更多问题,因为明显的最短路径可以被权重为 K 的边的组合击败.
示例
以下是此类问题。如果没有权重会改变它们的值,我们可以使用 Dijkstra 轻松找到最短路径。但是,当权重 K 改变它们的值时,我们可以找到一条更短的路径,因为在经过边 A-C 之后,边 C-D 的权重为 0。
问题
如何找到最短路径?
我可以在这里使用 Dijkstra 的算法还是使用 A* 或 BFS 等其他算法更好?
【问题讨论】:
标签: algorithm graph shortest-path