У меня есть ориентированный взвешенный граф G = <V, E>
. Мне нужно найти кратчайший путь между s
и t
в O((V + E)*logV)
. Это была бы очень простая задача, если бы у меня был классический метрический вес пути. Но это не так.
Weight of path = two heaviest edges in this path
.
Поэтому классический Dijkstra's algorithm with modified binary heap
не работает. Я думаю, что я должен изменить этот алгоритм. Я пытаюсь это сделать, но у меня нет успеха.
Example.
Вес пути между 3
и 5
= 4 + 2 = 6
Вес пути между 3
и 7
= 4 + 4 = 8