【发布时间】:2016-01-19 13:36:48
【问题描述】:
我正在做这个问题http://www.spoj.com/problems/SHOP/。这个问题归结为计算加权图中 2 点之间的最短路径,其中顶点具有权重。我使用 bfs https://code.hackerearth.com/ff00c2Z 实现了一个工作解决方案,它在示例测试用例上运行良好但是当我用谷歌搜索一些解决方案时,给出了 WA 的结论 我看到实际的解决方案使用了dijkstra。当我试图找出我的错误时,我看到我使用了双端队列而不是优先级队列,在这种情况下它有什么区别?为什么双端队列不起作用?我的方法错了吗?那么如何使用 BFS 来解决这个问题呢?
【问题讨论】:
-
嗨动画。最好将链接中的重要信息包含在您的问题本身中,因为链接稍后可能会失效。
-
需要注意的是,由于边没有权重,而是顶点有权重,因此我们可以使用修改后的 BFS 代替 Dijkstra 算法,因为边的权重为 1。跨度>
-
我做了同样的事情,但似乎我犯了一个我无法找到的错误
标签: algorithm priority-queue deque