У меня есть неориентированный граф, который изначально не имеет ребер. Теперь на каждом шаге добавляется или удаляется край, и нужно проверить, имеет ли граф хотя бы один круг. Вероятно, самым простым достаточным условием для этого являетсяПроверьте, имеет ли изменяющийся неориентированный граф хотя бы один круг
подключенные компоненты + количество ребер < = количество узлов.
Поскольку «шаги», упомянутые выше, выполняются миллионы раз, эта проверка должна быть действительно быстрой. Поэтому я задаюсь вопросом, что было бы быстрым способом проверить условие в зависимости от того, что на каждом шаге изменяется только один край.
Любые предложения?
Один вопрос: если вы обнаруживаете, это цикл, вы собираетесь добавить этот край в любом случае? – pentadecagon
Исправлено ли число узлов? Вы не упомянули условие начальных узлов. –
@pentadecagon Края добавляются в любом случае. –