【问题标题】:What algorithm for solving the "shortest path problem" should i use? [closed]我应该使用什么算法来解决“最短路径问题”? [关闭]
【发布时间】:2019-04-09 06:06:26
【问题描述】:

所以,我一直在研究解决 ICPC 2014 的Game Strategy 问题(第 7 页)。

这包含在一个有 n 个盒子的棋盘游戏中,每个盒子都有一组独特的路径,这些路径通向棋盘上的另一个盒子(可以有一条通向自身的路径)。我认为图表可以很好地表示游戏,更具体地说是有向图

graphic case representation whit n = 2

我找到了 2 种可能的算法来解决这个问题:

1.- 一个YouTube video,它说我应该使用广度优先搜索

2.- Blog 评论 ICPC 当年一些问题的解决方案。作者说可以使用DP(动态规划)。在Wikipedia's page 中解释了一种称为Dijkstra 算法 的算法,如页面所述,该算法用于“最短路径问题”。

这些算法之一是解决问题的更好方法吗?其中一个是否具有更好的性能或类似的东西?

【问题讨论】:

  • “更好”怎么样?快点?最小的代码足迹?最小的RAM使用量?最适合X平台场景? StackOverflow 不适合提供有关编程的意见。 StackOverflow 面向特定的编程问题;例如,“我试图对我的程序进行基准测试,比较一些最短路径路径算法,但是当文件表明我应该期望 Y 时收到 X 的输出”......那种事情

标签: algorithm recursion breadth-first-search dijkstra


【解决方案1】:

当图的边缘没有权重(如您的情况)和加权图的 Dijkstra 的算法时,您使用广度优先搜索(简称 BFS)。

附带说明,请记住,当边缘为负值时,Dijkstra 不起作用。

考虑到复杂性,您可能会对这个问题感兴趣:Why use Dijkstra's Algorithm if Breadth First Search (BFS) can do the same thing faster?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-18
    相关资源
    最近更新 更多