QOJ.ac

QOJ

时间限制: 2.0 s 内存限制: 256 MB 总分: 100 可 Hack ✓

#17734. 트리 2-색칠

统计

Busy Beaver는 크리스마스 트리를 장식하고 있지만, 사용할 색상에 대해 몇 가지 독특한 취향을 가지고 있습니다.

트리의 정점을 빨간색과 초록색, 두 가지 색으로 칠하는 경우를 생각해 봅시다.

색칠된 상태에서, 초록색 정점들로 이루어진 연결 성분이 인접한 빨간색 정점과 최대 두 개 이하로 연결되어 있다면 이를 멋진(cool) 성분이라고 부릅니다. 트리 $t$에 대하여, $f(t)$를 $t$의 모든 가능한 색칠 방법 중 멋진 성분의 최대 개수라고 정의합니다.

처음에는 정점 $1$ 하나만 존재하는 트리 $t$가 있습니다. $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$번째 줄에는 $i$번째 쿼리 수행 후의 $f(t)$ 값을 출력합니다.

서브태스크

  • ($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.