Удалите минимальное количество узлов, чтобы отключить граф - PullRequest
0 голосов
/ 11 апреля 2020

Найдите минимальное количество узлов, которое необходимо удалить, чтобы отключить граф (не существует пути от любого узла ко всем остальным узлам). Количество узлов может быть 10 5

1 Ответ

0 голосов
/ 12 апреля 2020

Прежде всего, чтобы найти узел, который не необходим для подключения графа, вам нужно найти цикл. Как только вы нашли цикл, вы знаете, что все эти ребра в этом цикле не нужны. Все остальные ребра в графе необходимы для удержания графа вместе, поэтому вы делаете простой обход графа и подсчитываете количество соединенных вершин, чтобы найти минимальное количество узлов, которое нужно удалить, чтобы отключить граф. Я не уверен, что это самый эффективный способ, просто самый эффективный в моей голове. Если V - это число вершин, а E - это число ребер, временная сложность будет где-то около O (V + E) + O (V), поскольку начальный цикл поиска равен O (V + E), а счет узлы O (V). Поскольку E> = V, сложность времени может быть округлена до O (E), но с огромными постоянными коэффициентами.

...