QOJ.ac

QOJ

حد الوقت: 2.0 s حد الذاكرة: 256 MB مجموع النقاط: 100 قابلة للهجوم ✓

#17734. 2-раскраска дерева

الإحصائيات

Занятой Бобёр украшает новогоднюю ёлку, но у него есть странные предпочтения относительно того, какие цвета использовать.

Рассмотрим раскраску вершин дерева в два цвета: красный и зелёный.

В раскраске связную компоненту зелёных вершин назовём крутой, если с этой компонентой граничит не более двух красных вершин. Для дерева $t$ пусть $f(t)$ — это максимальное количество крутых компонент при любой раскраске $t$.

Имеется дерево $t$, изначально содержащее только одну вершину, обозначенную как вершина $1$. Выполните $N$ запросов; в $i$-м запросе добавьте листовую вершину, присоединив её к вершине $a_i$. Существует два типа тестов, зависящих от переменной $X \in \{0, 1\}$:

  • Если $X = 0$, выведите $f(t)$ после выполнения всех запросов.
  • Если $X = 1$, выведите $f(t)$ после каждого запроса.

Входные данные

Имеется несколько тестовых случаев. Файл входных данных начинается с $T$ и $X$ ($1 \le T \le 4\cdot 10^4$, $X \in \{0, 1\}$), количества тестовых случаев и типа теста соответственно.

Первая строка каждого тестового случая содержит целое число $N$ ($1 \le N \le 2 \cdot 10^5$).

Вторая строка содержит $N$ целых чисел $a_1, \dots, a_N$ ($1 \le a_i \le i$).

Гарантируется, что сумма $N$ по всем тестовым случаям не превышает $4 \cdot 10^5$.

Выходные данные

Если $X = 0$, то для каждого тестового случая выведите $f(t)$ для итогового дерева на одной строке.

Если $X = 1$, то для каждого тестового случая выведите $N$ строк, где $i$-я строка содержит значение $f(t)$ после $i$-го запроса.

Подзадачи

  • ($25$ баллов) $X = 0$.
  • ($30$ баллов) Каждое $a_i$ выбирается равномерно случайно из $[1, i]$.
  • ($45$ баллов) Без дополнительных ограничений.

Примеры

Входные данные 1

2 0
4
1 2 3 3
8
1 2 3 2 3 6 5 7

Выходные данные 1

3
5

Входные данные 2

2 1
4
1 2 3 3
8
1 2 3 2 3 6 5 7

Выходные данные 2

1
2
2
3
1
2
2
3
4
4
4
5

Примечание

Пояснение к примеру 1

Для первого тестового случая мы можем раскрасить вершины $1$, $2$, $4$ и $5$ в зелёный цвет (заметим, что всего $N + 1 = 5$ вершин, так как одна вершина была изначально). Тогда $\{1, 2\}$, $\{4\}$ и $\{5\}$ являются крутыми компонентами.

Для второго тестового случая мы можем раскрасить вершины $1$, $4$, $5$, $6$, $8$ и $9$ в зелёный цвет. Тогда $\{1\}$, $\{4\}$, $\{5, 8\}$, $\{6\}$ и $\{9\}$ являются крутыми компонентами.

Пояснение к примеру 2

В этом примере используются те же деревья, что и в первом, но тип теста $X = 1$.

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.