QOJ.ac

QOJ

Limite de temps : 2.0 s Limite de mémoire : 512 MB Points totaux : 100 Hackable ✓

#7320. 素数树

Statistiques

Bobo 提出了一种有根树的乘法运算。

设 $A$ 和 $B$ 是两棵任意的有根树。$T = A \cdot B$ 的构造方法是:对于 $A$ 中的每个顶点 $x$,复制一份 $B$,并将该副本的根与 $x$ 合并(详见下图)。此时我们称 $A$ 和 $B$ 为 $T$ 的因子。

显然,我们有 $T \cdot 1 = 1 \cdot T = T$,其中 $1$ 是仅含一个顶点的有根树。因此,$1$ 是每一棵有根树的因子,且每一棵有根树都是其自身的因子。如果一棵有根树 $T$ 仅有 $T$ 和 $1$ 作为其因子,我们称 $T$ 为素数树。

Bobo 有一棵包含 $n$ 个节点的有根树 $T$,节点编号为 $1, 2, \dots, n$。他想将 $T$ 分解为尽可能多的素数树的乘积(即找到一个等式 $T = T_1 \cdot T_2 \cdot \dots \cdot T_m$,其中 $T_i$ ($1 \le i \le m$) 均为素数树,且 $m$ 最大)。

注意:$1$ 不是素数树。

输入格式

输入包含零个或多个测试用例,以文件结束符(EOF)终止。对于每个测试用例:

第一行包含一个整数 $n$,表示节点数($2 \le n \le 10^6$)。

第二行包含 $(n - 1)$ 个整数 $p_2, p_3, \dots, 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.