QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#7320. Просте дерево

Statistics

Bobo пропонує операцію множення кореневих дерев.

Нехай $A$ і $B$ — два довільні кореневі дерева. Тоді $T=A\cdot B$ будується так: для кожної вершини $x\in A$ створюється копія $B$, і корінь цієї копії зливається з $x$ (докладніше див. рисунок нижче). Тоді $A$ та $B$ називаються множниками $T$.

problem_7320_6efc0a1f99681b8df5446888c2eae3c2.png

Очевидно, $T\cdot\mathbf{1}=\mathbf{1}\cdot T=T$, де $\mathbf{1}$ — кореневе дерево лише з однією вершиною. Отже, $\mathbf{1}$ є множником кожного кореневого дерева, а кожне кореневе дерево є множником самого себе. Якщо ж кореневе дерево $T$ має лише множники $T$ та $\mathbf{1}$, то ми називаємо $T$ простим деревом.

Bobo має кореневе дерево $T$ із $n$ вершинами, для зручності позначеними числами $1,2,\ldots,n$. Він хоче розкласти $T$ у добуток якомога більшої кількості простих дерев (тобто знайти рівність $T=T_1\cdot T_2\cdot\ldots\cdot T_m$, де $T_i$ ($1\le i\le m$) є простими деревами, а $m$ — найбільше можливе).

Зауважте, що $\mathbf{1}$ не є простим деревом.

Вхідні дані

Вхідні дані містять нуль або більше тестових випадків і завершуються кінцем файлу. Для кожного тестового випадку:

Перший рядок містить ціле число $n$ — кількість вершин ($2\le n\le10^6$).

Другий рядок містить $(n-1)$ цілих чисел $p_2,p_3,\ldots,p_n$, де $p_i$ — батьківська вершина $i$-ї вершини ($1\le p_i\le i-1$).

Гарантується, що сума всіх $n$ не перевищує $10^6$.

Вихідні дані

Для кожного тестового випадку виведіть ціле число — найбільшу кількість простих множників.

Приклади

Вхідні дані 1

12
1 1 1 1 2 2 4 5 5 6 10
3
1 1
6
1 1 1 2 3
13
1 1 1 2 2 3 3 4 5 6 7 8

Вихідні дані 1

3
1
2
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.