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_8b8868c80819484e5b698ba167e6d8e2.png

Очевидно, $T \cdot 1 = 1 \cdot T = T$, где $1$ — корневое дерево, состоящее только из одной вершины. Поэтому $1$ является множителем любого корневого дерева, и каждое корневое дерево является множителем самого себя. Если у корневого дерева $T$ единственными множителями являются $T$ и $1$, то $T$ называется простым деревом.

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

Обратите внимание, что $1$ не является простым деревом.

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

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

Первая строка содержит целое число $n$ — число вершин ($2 \le n \le 10^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.