Мне нужно найти кратчайший путь между двумя узлами s, t во взвешенном ориентированном графе.
Вот ограничения:
- Вес может быть отрицательным.
- Путь должен пройти через конкретное ребро, давайте назовем ее e и shes от узла u к v.
- Выходной путь должен быть простым, то есть мы проходим через узел только один раз.
Теперь у меня есть идея для решения, но я не знаю, будет ли вывод простым путем или нет.
Мое решение состоит в том, чтобы запустить алгоритм Bellman Ford дважды, один раз от s, второй от v. Кратчайший путь будет s к u, u к v, v к t.
Поскольку я хочу, чтобы все было просто, я не буду использовать узлы, которые я уже использовал во втором запуске Bellman Ford.
Поскольку я хочу, чтобы он был кратчайшим, я проверим, быстрее ли работает bellman ford от v до t, прежде чем переходить от s к u (если есть узел, оба используют где лучшее место для его размещения). ).
Спасибо за помощников!