I - Add One Edge 3 Editorial by Magentor

前半部分の別解

公式解説にある「各頂点についてのグラフでの最遠点までの距離」は、全方位木dpを用いることでも求めることができます。

全方位木dp自体の解説については、 ei1333さんの記事などがあるため、ここでは省略することにします。

それぞれの木が、頂点 \(1\) を根とした根付き木であるとします。\(dp_i\) を、「頂点 \(i\) の部分木に含まれる頂点であって、頂点 \(i\) からの距離が最大であるもの」と、頂点 \(i\) との距離と定義すると、この値は単純な木dpを適用して求めることができます。

具体的には、\(dp_i = 1 + \displaystyle\max_{j \in C_i} dp_j\) のような遷移を行うことで求めることができます。ここで、\(C_i\) を頂点 \(i\) の子の頂点番号の集合とします。

これを活用することにより、全方位木dpを行うことが可能で、結局のところ、この問題を解くことができました。

posted:
last update: