QOJ.ac

QOJ

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

#7320. Arbre premier

Statistics

Bobo propose une opération de multiplication sur les arbres enracinés.

Soient $A$ et $B$ deux arbres enracinés quelconques. On construit alors $T=A\cdot B$ en créant une copie de $B$ pour chaque sommet $x\in A$ et en fusionnant la racine de cette copie avec $x$ (voir la figure suivante pour plus de détails). On appelle alors $A$ et $B$ des facteurs de $T$.

problem_7320_6f62f0b3c9d9010489b4b2da9e34034e.png

On a manifestement $T\cdot\mathbf{1}=\mathbf{1}\cdot T=T$, où $\mathbf{1}$ est l'arbre enraciné à un seul sommet. Ainsi, $\mathbf{1}$ est un facteur de tout arbre enraciné, et tout arbre enraciné est un facteur de lui-même. Si les seuls facteurs d'un arbre enraciné $T$ sont $T$ et $\mathbf{1}$, on dit que $T$ est un arbre premier.

Bobo possède un arbre enraciné $T$ à $n$ sommets, commodément numérotés $1,2,\ldots,n$. Il souhaite décomposer $T$ en un produit d'un nombre aussi grand que possible d'arbres premiers (c'est-à-dire trouver une égalité $T=T_1\cdot T_2\cdots T_m$ où les $T_i$ ($1\le i\le m$) sont des arbres premiers et où $m$ est maximal).

Attention, $\mathbf{1}$ n'est pas un arbre premier.

Entrée

L'entrée contient zéro ou plusieurs cas de test et se termine à la fin du fichier. Pour chaque cas de test :

La première ligne contient un entier $n$, le nombre de sommets ($2\le n\le10^6$).

La deuxième ligne contient $(n-1)$ entiers $p_2,p_3,\ldots,p_n$, où $p_i$ est le parent du $i$-ème sommet ($1\le p_i\le i-1$).

Il est garanti que la somme de tous les $n$ ne dépasse pas $10^6$.

Sortie

Pour chaque cas de test, affichez un entier représentant le nombre maximal de facteurs premiers.

Exemples

Entrée 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

Sortie 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.