我遇到一个问题,要求我在无向图中找到一条从起始节点到目标节点的路径,沿该路径的最小权重大于或等于任何其他路径。并且有一部分边是“危险”的,我们在选择路径时不能使用多个“危险”边,我们如何在 O(mlogn) 中找到这条路径,m 是所有边的数量,n 是顶点数。假设结果总是存在。
如果没有危险路径,我可以使用Dijkstra算法的修改版本,但是,我不知道如何添加“危险”边缘。我可以删除所有“危险”边,只保留一条,这样会发现路径可能包含也可能不包含剩余的“危险”边,并对每个“危险”边重复此操作,但是时间复杂度太高。有人可以给我线索吗?