创建一个新的图,其中:
定义一个节点为 (graphID, u),表示只能通过使用属于图“graphID”的最后一条边到达节点u。
如果“graphID1”等于“graphID2”,则节点(graphID1, u1)和(graphID2, u2)之间的边权重为零,否则为零。
最后,在考虑多源的情况下运行BFS 0/1算法,源点分别为(0, source), (1, source)和(2, source),在新图中考虑以下可能的目标点:(0, target), (1, target)和(2, target)。得到答案需要考虑这些目标点。
复杂度为O(V + E)。
请查看我的代码以获取更多细节:ideone.com/iDlm38