我将给出这个问题的一般情况,因为这是我第二次看到可以简化为这个的东西,而且我找不到比检查每条路径更好的东西了。
假设我们有一个顶点为 V 的有向图 G,使得没有环和自边。此外,每个顶点都有一种颜色。找到从给定顶点开始的最长路径,使得该路径最多经过每种颜色的 1 个顶点。
我已经通过在递归步骤中删除添加的顶点颜色的所有顶点来实现本质上是深度优先搜索,我想知道是否有更好的方法来做到这一点。我一直遇到的问题是,由于颜色限制,存储过去的结果很困难,所以像 Dijkstra 的最短路径算法不能给出正确的结果。