[ABC291Ex] Balanced Tree

题意翻译

平衡的树 给你一棵树 $T$,你要建一棵树 $R$,使其满足以下性质: - 任意两个点 $x,y$ 在 $R$ 中的最近公共祖先 $z$ 在 $T$ 中都位于 $x,y$ 之间的简单路径上。 - 对于任意一个非根的节点 $v$,以它为根的子树大小的两倍不得超过以它父亲为根的子树大小。 对于每个节点,输出它在 $R$ 中父亲的编号,根节点输出 `-1`。

题目描述

[problemUrl]: https://atcoder.jp/contests/abc291/tasks/abc291_h $ N $ 頂点の木 $ T $ が与えられます。$ i $ 番目の辺は頂点 $ A_i $ と $ B_i $ を結んでいます。 次の条件をともに満たす $ N $ 頂点の根付き木 $ R $ を $ 1 $ つ求めてください。 - $ 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 $ とする。$ R $ における頂点 $ i $ の親を頂点 $ p_i $ とする(ただし、$ i $ が根のときは $ p_i=-1 $ と定める)。 $ N $ 個の整数 $ p_1,\ldots,p_N $ をこの順に空白区切りで出力せよ。

输入输出样例

输入样例 #1

4
1 2
2 3
3 4

输出样例 #1

2 -1 4 2

输入样例 #2

5
1 2
1 3
1 4
1 5

输出样例 #2

-1 1 1 1 1

说明

### 制約 - $ 1\ \leq\ N\ \leq\ 10^5 $ - $ 1\leq\ A_i,B_i\ \leq\ N $ - 入力は全て整数である - 与えられるグラフは木である ### Sample Explanation 1 例えば、$ R $ における頂点 $ 1,3 $ の最小共通祖先は頂点 $ 2 $ であり、$ T $ において、頂点 $ 1,3 $ を結ぶ単純パス上に頂点 $ 2 $ が存在します。 また、例えば、$ R $ における頂点 $ 4 $ を根とする部分木の頂点数は $ 2 $ であり、その $ 2 $ 倍は、頂点 $ 2 $ を根とする部分木の頂点数 $ 4 $ 以下です。 !\[図\](https://img.atcoder.jp/abc291/7c68a1da41dbfff60a08aad4fe182376.png)