我已经尝试了几种方法,但它们都以死胡同告终。问题:
给定一个 G=(V,E) 一个有向无权图,其中每个顶点都被着色为红色或蓝色。假设有来自 V 的顶点 s 和 t。描述一个算法,该算法将找到 s 和 t 之间的路径,该路径将包含最少的红色顶点。解释算法,证明它并展示它的复杂性。
我想到了两种方法并放弃了两种方法:
- 使用按颜色排序的邻接列表(蓝色第一个红色最后一个)并运行 DFS - 坏主意
- 将红色顶点的每条边的权重设置为 2,将蓝色顶点设置为 1,然后运行 Dijkstra - 找到了一个反例
我真的很乐意在正确的方向上获得一些帮助。我不想得到完整的答案,而是得到点击/提示。