有多个边的有向图dijkstra

时间:2019-03-20 04:38:38

标签: algorithm data-structures dijkstra directed-graph weighted-graph

您将获得一个加权有向图,其中1≤ N ≤10 ^ 5个节点数(从1到N),起始节点 S 和1≤ M ≤10 ^ 5条边缘,可以是三种类型(均带有权重):

  1. 您可以从 U 节点转到 V 节点。
  2. 您可以从 U 节点转到 [l,r] 范围内的任何节点。
  3. 您可以从范围 [l,r] 中的任何节点转到 V 节点。

注意:所有权重均为非负数

任务是找到从 S 到其余节点的最小成本(或路径中权重的总和),或者确定是否不会发生这种情况。

必须比复杂度O(N * M)更快,接近O(M * log ^ 2(N))的复杂度会很大。

我最好的办法是使一个最小的段与懒惰的代表一个优先级队列答案,这是成本较低,并且已经更新了要传播的节点,但这仅适用于类型1和2的边缘。

我无法处理第三种类型的边缘。有解决办法吗?

0 个答案:

没有答案
相关问题