MTRWY: Matrix - s3.amazonaws.com

advertisement
MTRWY: Matrix
Легенда, описанная далее, переформулирована и упрощена переводчиком, чтобы читатель мог
лучше понять условие задачи. Оригинальную легенду вы можете прочитать на странице
задачи в контесте.
Условие:
Вам дана прямоугольная решетка N x M, а именно, множество ячеек (x, y), где 1 <= x <= N, 1 <=
y <= M. Две ячейки смежные, если у них есть общая сторона. Формально, две ячейки (x1, y1) и
(x2, y2) являются смежными, если |x1 – x2| + |y1 – y2| = 1. Между двумя смежными ячейками может быть стена. Две ячейки a и b соединены, если между ними существует путь (т.е. существует
последовательность ячеек c1, c2, …, ck такая, что c1 = a, ck = b и для каждого 1 <= i < k, ci и cj –
смежные).
Вам дано Q запросов четырех типов:
•
•
•
•
1 x y – построить стену между ячейками (x, y) и (x, y + 1). Если стена в этом месте уже
существует, то запрос игнорируется.
2 x y - построить стену между ячейками (x, y) и (x + 1, y). Если стена в этом месте уже
существует, то запрос игнорируется.
3 x1 y1 x2 y2 – проверить соединены ли ячейки (x1, y1) и (x2, y2). Ответ равен “1”, если они
соединены, иначе ответ - “0”.
4 – Найдите размер наибольшей компоненты связности. Компонента связности – это набор ячеек, каждая пара которых соединена между собой.
До выполнения запросов в решетке не имеется стен.
Формат ввода:
В первой строке содержится целое число T – количество тестов.
Далее следует описание тестов в следующем формате:
Первая строка содержит разделенные одиночными пробелами целые числа N, M и Q.
Следующие Q строк содержат описание запросов.
Формат вывода:
Для каждого тестового случая, выведите сумму ответов на запросы 3 и 4 типа в отдельную
строку.
Оценивание & ограничения:
1
•
•
•
•
•
•
1 ≤ T ≤ 100
2 ≤ N, M ≤ 1000
Сумма всех Q во всех тестовых случаях не превышает 106.
Для запросов первого типа: 1 <= x <= N и 1 <= y <= M-1.
Для запросов второго типа: 1 <= x <= N-1 и 1 <= y <= M.
Для запросов третьего типа: 1 <= x1, x2 <= N и 1 <= y1, y2 <= M.
•
•
(Подзадача 1): 1 <= Q * N * M <= 106 – 15 баллов.
(Подзадача 2): 1 <= N, M <= 300, сумма всех Q <= 105 – 15 баллов.
•
(Подзадача 3): оригинальные ограничения из условия – 70 баллов.
Примеры тестов:
Входные данные:
1
3
3
1
1
2
4
1
4
3
1
3
4
1
1
2
2
10
1 3 4
2
2
2
3 1
1 1 3 4
1 2
1 1 1 1
Выходные данные:
21
Пояснение:
Запрос 1: Существует несколько путей от ячейки (1,1) до (3,4). Один из них отмечен на рисунке
№1. Значит, ответ на этот запрос – 1.
Запрос 2: На рисунке №2 изображена ячейка после выполнения второго запроса.
Запрос 3: На рисунке №3 изображена ячейка после выполнения третьего запроса.
Запрос 4: На рисунке №4 изображена ячейка после выполнения четвертого запроса.
Запрос 5: На рисунке №5 изображена ячейка после выполнения пятого запроса.
Запрос 6: На рисунке №6 изображена ячейка после выполнения шестого запроса.
Запрос 7: На рисунке №7 изображена ячейка после выполнения седьмого запроса.
Запрос 8: На рисунке №8 видно, что нет путей между ячейками (1,1) и (3,4). Значит, ответ на
этот запрос – 0.
Запрос 9: На рисунке №9 изображена ячейка после выполнения девятого запроса.
Запрос 10: Когда ячейка a = b, то они всегда соединены. Следовательно, ответ – 1.
Сумма всех ответов на запросы равна 1 + 12 + 7 + 0 + 1 = 21.
1
1
Download