【问题标题】:minimum RGB path最小 RGB 路径
【发布时间】:2020-01-19 21:37:55
【问题描述】:

给你一个有向G = (V, E)加权边。节点颜色为红色、绿色和蓝色。 从 sv 的路径如果包含红色绿色和蓝色节点,则称为彩色。

找到 s 和每个 v 之间的最短路径,条件是路径应该是彩色的。 如果有不止一条色彩缤纷的路径,请找出它们之间的最小值。

如果没有这样的路径返回false。

我不知道如何开始。非常感谢任何帮助!

【问题讨论】:

  • 这似乎是 Dijkstra 算法的一项任务,添加了路径应该是彩色的结束条件。试一试,如果您遇到特定问题,请回来回答。
  • 权重是非负数吗?
  • 是的,权重是非负数。
  • 添加路径应该是彩色的条件,然后我正在更改算法。我想不出办法。

标签: algorithm graph


【解决方案1】:

当您沿着从 sv 的路径行走时,从一个“状态”转到另一个“状态”,其中“状态”包括您所在的节点 和您在旅途中使用过哪些颜色的节点(7 种可能的组合)。您的状态决定了您当前位置的哪些路径是有效的解决方案。

根据您的原始图表,制作(或想象)一个可访问状态的图表,其中一条边表示从一种状态转换到下一种状态的能力。该图对于每个原始图顶点最多有 7 个顶点。

现在使用 Dijkstra 算法找到从 (s,red)(假设 s 是红色)到 (v,red+green+blue)的最短路径

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多