AT_abc291_h [ABC291Ex] Balanced Tree

题目描述

给定一棵有 $N$ 个顶点的树 $T$。第 $i$ 条边连接顶点 $A_i$ 和 $B_i$。 请你构造一棵满足以下两个条件的、有 $N$ 个顶点的有根树 $R$: - 对于所有满足 $1 \leq x < y \leq N$ 的整数对 $(x, y)$,都满足: - 若 $R$ 中顶点 $x$ 和 $y$ 的最近公共祖先为顶点 $z$,则在 $T$ 中连接顶点 $x$ 和 $y$ 的简单路径上存在顶点 $z$。 - 在 $R$ 中,对于除根以外的每个顶点 $v$,以 $v$ 为根的子树的顶点数的 $2$ 倍,不超过以 $v$ 的父亲为根的子树的顶点数。 可以证明,满足上述条件的有根树一定存在。

输入格式

输入按以下格式从标准输入读入。 > $N$ > $A_1$ $B_1$ > $\vdots$ > $A_{N-1}$ $B_{N-1}$

输出格式

设 $R$ 为满足条件的有根树。令 $p_i$ 表示 $R$ 中顶点 $i$ 的父亲(若 $i$ 为根,则 $p_i = -1$)。 请按顺序输出 $N$ 个整数 $p_1, p_2, \ldots, p_N$,用空格分隔。

说明/提示

### 限制条件 - $1 \leq N \leq 10^5$ - $1 \leq A_i, B_i \leq N$ - 输入均为整数 - 给定的图为一棵树 ### 样例解释 1 例如,$R$ 中顶点 $1, 3$ 的最近公共祖先为顶点 $2$,并且在 $T$ 中连接顶点 $1$ 和 $3$ 的简单路径上存在顶点 $2$。 又如,$R$ 中以顶点 $4$ 为根的子树的顶点数为 $2$,其 $2$ 倍为 $4$,不超过以顶点 $2$ 为根的子树的顶点数 $4$。 ![](https://img.atcoder.jp/abc291/7c68a1da41dbfff60a08aad4fe182376.png) 由 ChatGPT 4.1 翻译