AT_arc028_3 [ARC028C] 高橋王国の分割統治

题目描述

高桥王国由 $N$ 个城镇组成,每个城镇编号从 $0$ 到 $N-1$。另外,有 $N-1$ 条道路连接这些城镇,保证任意两个城镇之间都可以通过若干条道路互相到达。 高桥王国的国王高桥君正在决定哪个城镇作为首都。为了参考,他决定计算每个城镇作为首都时的“平衡值”。当选择城镇 $v$ 作为首都时,其“平衡值”定义为:在不经过城镇 $v$ 的情况下,能够互相到达的城镇集合中,最大集合的大小。 例如,下图中当选择城镇 $1$ 作为首都时,{城镇 $0$, 城镇 $4$}、{城镇 $2$}、{城镇 $3$} 等集合都可以在不经过城镇 $1$ 的情况下互相到达。其中最大集合为 {城镇 $0$, 城镇 $4$},其大小为 $2$,因此城镇 $1$ 作为首都时的“平衡值”为 $2$。 ![figure](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_arc028_3/a2884d775d8d248a4b6d27c592f114eb88daf1ec.png)

输入格式

输入通过标准输入给出,格式如下: > $N$ > $p_1$ > $p_2$ > $\vdots$ > $p_{N-1}$ - 第 $1$ 行为一个整数 $N\ (1 \leq N \leq 100,\!000)$,表示城镇的数量。 - 接下来的 $N-1$ 行,每行一个整数 $p_i\ (0 \leq p_i \leq i-1)$,表示存在一条道路连接城镇 $i$ 和城镇 $p_i$。

输出格式

输出共 $N$ 行。第 $i$ 行输出一个整数,表示选择城镇 $i-1$ 作为首都时的“平衡值”。

说明/提示

## 部分分 本题设有部分分。 - 若能通过所有 $N \leq 1000$ 的测试点,将获得 $30$ 分。 ## 样例解释 1 本样例的输入对应于题目描述中的示意图。 由 ChatGPT 4.1 翻译