编程题
### 问题描述 "花果山也装修新山洞了!!" 所谓一猴得道,群猴升天。 自从孙悟空去天庭做官之后,花果山的待遇也水涨船高,许多山洞都进行了装修,成为了猴子们的新宿舍,但是如何安排猴子们进行山洞选择却是一个难题。 具体地说,现在需要将 $n$ 只猴子分配进 $n$ 个山洞,猴子们的编号为 $1 \sim n$,山洞的编号也为 $1 \sim n$。 在入住山洞时,我们需要将猴子们按照某种排列顺序依次从 $1$ 号洞开始入住,例如猴子们的排序为 $[4,2,3,1]$,则意味着 $4$ 号猴入住 $1$ 号山洞,$2$ 号猴入住 $2$ 号山洞,$3$ 号猴入住 $3$ 号山洞,$1$ 号猴入住 $4$ 号山洞。 由于猴群等级界限森严,每只猴子还会被另外一只猴子所压制,第 $i$ 只猴子会被编号为 $a_i$ 的猴子所压制,这意味着编号为 $a_i$ 的猴子所居住的山洞编号必须小于编号为 $i$ 的猴子所居住的山洞。 现在请问,在满足所有优先级关系的情况下,每个山洞可能出现多少种不同编号的猴子居住呢? ### 输入格式 第一行输入一个整数 $n(1 \leq n \leq 10^5)$,表示猴子和山洞的数量。 接下来一行 $n$ 个整数 $a_1,a_2,a_3,\cdots,a_n(0\le a_i \le n,a_i \ne i)$,表示每只猴子被哪只猴子压制。 **数据保证有且仅有一个 $a_i$ 满足 $a_i$ 等于 $0$,意味编号为 $i$ 的猴子不会被其他任何猴子所压制。并且优先级关系合法,不会出现环。** ### 输出格式 输出一行 $n$ 个整数,第 $i$ 个整数表示第 $i$ 个山洞可能出现多少种不同编号的猴子居住。 ### 输入样例 ```text 4 0 1 1 2 ``` ### 输出样例 ```text 1 2 3 2 ```
查看答案
赣ICP备20007335号-2