【问题标题】:Blocking directed paths on a Cactus Graph [closed]阻止仙人掌图上的有向路径[关闭]
【发布时间】:2020-09-10 01:09:05
【问题描述】:

我想在cactus graph 上找到具有某些阻塞定向路径的最长路径距离。

例如,如果我们有以下 4 个节点,

这意味着

  • 如果我们访问 1,我们不能去 2 也就是说,1 -> 2 和 1 -> 3 -> 2 是不允许的。 但是,2 -> 1 是允许的。

同样

  • 不能从 2 到 3

  • 不能从 3 移动到 1

  • 不能从 1 到 0

  • 可以旅行任何其他人

所以我们有路径(1,3,2),(0,2,1)等。因此最长的距离是3。

在这种情况下,答案是 9。(4、5、6、7、8、0、9、2、3)等......

我被这个问题困扰了一个星期。不过,我不知道如何接近。谢谢。

【问题讨论】:

  • 你在这里没有提到效率,但我假设你正在寻找在多项式时间内运行的东西?

标签: algorithm graph-algorithm path-finding cactus


【解决方案1】:

听起来您所拥有的只是一个有向图,但与箭头指示的方向相反。反转方向并运行标准最长路径图算法。

https://en.wikipedia.org/wiki/Longest_path_problem

据我了解,允许的路径是(但你不能走另一条路):

0 => 1
1 => 3
3 => 2
2 => 1

将它们转换为有向图并在其上运行最长路径算法。

编辑:更新答案以反映最长路径而不是最短路径

【讨论】:

  • Dijkstra 的算法将返回 最短 路径。 OP想要最长的路径。
  • @templatetypedef 啊,是的,很好,由于某种原因错过了。点仍然存在,一旦将图转换为有向图,标准的最长路径算法就应该起作用。不过会更新答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-17
相关资源
最近更新 更多