我将给出这个问题的一般情况,因为这是我第二次看到可以减少的东西,而且我找不到比检查每条路径更好的东西。 / p>
假设我们有一个带有顶点V的有向图G,这样就没有循环而没有自我边。另外,每个顶点都有一种颜色。找到从给定顶点开始的最长路径,使路径最多穿过每种颜色的1个顶点。
我通过在递归步骤中删除添加的顶点颜色的所有顶点来实现基本上深度优先搜索,并且我想知道是否有更好的方法来执行它。我一直遇到的问题是,由于颜色的限制,存储过去的结果很困难,因此像Dijkstra这样的最短路径算法无法给出正确的结果。
答案 0 :(得分:2)
问题的答案是否。
如果您为每个顶点指定了不同的颜色,那么您的问题将会减少为{-3}},这是NP难的。