Контест Senior Задачи на Java обновлено
Связность сети: система непересекающихся множеств
Условие
В сети n серверов, изначально не связанных. Обработайте запросы:
union a bпроложить канал между серверамиaиb;same a bвывестиYES, если между серверами есть путь по каналам, иначеNO;countвывести число компонент связности.
Ввод: в первой строке n и q (1 ≤ n ≤ 2·10⁴, 1 ≤ q ≤ 2·10⁴), далее запросы, номера серверов от 1 до n.
Вывод: ответы на same и count.
Пример
5 7
union 1 2
same 1 2
same 1 3
count
union 3 2
same 1 3
count
YES
NO
4
YES
3
Как подойти
DSU со сжатием путей и union by size.
Подсказки: 2
- Каждая компонента задаётся корнем дерева.
- Сжатие путей и объединение по размеру.
Решите в тренажёре
Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.