035 - Preserve Connectivity(★7) Editorial
by
keisuke6
\(V\) を帰りがけ順で訪れる順番にソートします。すると答えは \(\bigl( d(V_{j,1},V_{j,2}) + d(V_{j,2},V_{j,3})+ \cdots + d(V_{j,K_j-1},V_{j,K_j}) + d(V_{j,K_j},V_1) \bigr) / 2\) という形で表すことができます( \(d(a,b)\) で頂点 \(a\) と頂点 \(b\) の距離を表すものとしています)。
\(V\) の頂点を帰りがけ順に巡回すると、頂点たちを連結にするのに使う辺のみちょうど 2 回通り、それ以外の辺は通らないためです。
このことを用いれば、公式解説に書かれている通り LCA を用いるなどして距離を計算することで答えを \(O(N \log N)\) 時間で求めることができます。
参考:https://www2.ioi-jp.org/camp/2023/2023-sp-tasks/contest3/tourism-review.pdf
posted:
last update: