Мы знаем, что для непересекающихся множеств существует «Объединение и поиск». http://en.wikipedia.org/wiki/Union_find
Но как сделать обратную операцию? Рассмотрим набор с N узлами, соединенными с E ребрами (который на самом деле является графом). И на каждом шаге мы хотим удалить какое-то ребро и проверить, не приведет ли эта операция удаления к другому непересекающемуся множеству. Можно ли сделать это быстро, как в "Союз и находка"?
P.S. это не домашнее задание, у нас праздник :)