AtCoder Beginner Contest 240 E問題 Ranges on Tree
問題
提出解答
問題の概要
頂点 を根とする根付き木がある. 番目の辺は頂点 を結ぶ.
自然数の部分集合 を 以上 以下の整数全体の集合とする.
また, 頂点 に対して, で の子孫全体の集合とする.
以下を満たす 個の整数の組 の内, を最小にするような一例を挙げよ.
- 頂点 について以下が成立する.
- ならば,
- ならば,
制約
- グラフは木
解法
根付き木における葉の数を とする. このとき, であることを示す. ここで, とし, 個の葉を とする.
- において, より, ならば である. このことから, は互いに素な集合の直和で, 少なくとも 個の要素を含む. よって, 最大値は 以上でなくてはならない.
- について, ある DFS の行きがけ順に並び替えてもよいとする. 以降ではこれを仮定する. このとき, に対して, とする. 葉でない頂点 については, の子全体の集合を としたとき,
とすると包含に関する条件を満たし, 最大値も であることが示せる.
よって, このようにして一例を挙げることができた. 計算量は である.