Учитывая неориентированный граф, мне нужен алгоритм (inO(|V|+|E|)
), который найдет мне самое тяжелое ребро в графе, образующем цикл. Например, если мой график выглядит так, как показано ниже, и я запускаю DFS(A)
, то самым тяжелым ребром на графике будет BC
. (*) В этой задаче у меня максимум 1 цикл.
Я пытаюсь написать модифицированный DFS, который вернет желаемый тяжелый край, но у меня проблемы.
Поскольку у меня есть не более 1 цикла, я могу сохранить края цикла в массиве и легко найти максимальное ребро в конце цикла, но я думаю, что этот ответ кажется немного беспорядочным, и я уверен, что есть лучший рекурсивный ответ.