解説
頂点 を根として DFS 木を構築することを考える。
無向グラフの DFS 木では、祖先・子孫の関係にない頂点間に辺は存在しない。根からのパスに含まれる頂点をすべて削除すると、残った連結成分はそれぞれ、パス上の頂点から分かれる部分木となる。
よって、DFS 木の各頂点 について、 を根とする部分木の頂点数を とすると、以下のように頂点を追加することによって構築したパスが条件を満たす。
- 頂点 を始点として追加する。
- 現在の最後に追加した頂点 の子のうち、 を満たす頂点 が存在すれば、 を追加する。
- そのような子が存在しなければ終了する。あれば1 に戻る。
部分木の頂点数が を超える子は高々 個であるため、パスから分岐する部分木の頂点数はいずれも 以下となる。
よって、構築したパスは条件を満たし、答えは常に存在する。
よって、 でこの問題を解くことができる。
ユーザー解説
ユーザー解説を書くユーザー解説はまだありません。