atcoder#ABC291H. [ABC291Ex] Balanced Tree
[ABC291Ex] Balanced Tree
题目描述
頂点の木 が与えられます。 番目の辺は頂点 と を結んでいます。
次の条件をともに満たす 頂点の根付き木 を つ求めてください。
- を満たす全ての整数の組 に対し次が成り立つ
- における頂点 の最小共通祖先が頂点 であるとき、 において 頂点 を結ぶ単純パス上に頂点 が存在する
- において、根以外の全ての頂点 に対し、 を根とする部分木の頂点数の 倍は、 の親を根とする部分木の頂点数以下である
なお、この条件を満たす根付き木は必ず存在することが証明できます。
输入格式
入力は以下の形式で標準入力から与えられる。
输出格式
問題文中の条件を満たす根付き木を とする。 における頂点 の親を頂点 とする(ただし、 が根のときは と定める)。
個の整数 をこの順に空白区切りで出力せよ。
题目大意
平衡的树
给你一棵树 ,你要建一棵树 ,使其满足以下性质:
- 任意两个点 在 中的最近公共祖先 在 中都位于 之间的简单路径上。
- 对于任意一个非根的节点 ,以它为根的子树大小的两倍不得超过以它父亲为根的子树大小。
对于每个节点,输出它在 中父亲的编号,根节点输出 -1
。
4
1 2
2 3
3 4
2 -1 4 2
5
1 2
1 3
1 4
1 5
-1 1 1 1 1
提示
制約
- 入力は全て整数である
- 与えられるグラフは木である
Sample Explanation 1
例えば、 における頂点 の最小共通祖先は頂点 であり、 において、頂点 を結ぶ単純パス上に頂点 が存在します。 また、例えば、 における頂点 を根とする部分木の頂点数は であり、その 倍は、頂点 を根とする部分木の頂点数 以下です。 ![図](https://img.atcoder.jp/abc291/7c68a1da41dbfff60a08aad4fe182376.png)