035 - Preserve Connectivity(★7)
部分点2の$ k=2 なら話は簡単で、2点のパスの長さを求められればよい。このクエリがたくさん来るので、2点のLCAが出せればよい。
これを一般の$ kに拡張したい。使う辺を2回ずつ数えると、「与えられた$ k点を全て巡る方法で距離が最短のものは?」という問題になり、木上ならばこれはDFSの行き掛け順に巡るのが最適である。
よって、与えられた$ k頂点をDFSの行き掛け順に並び替え、その順序において隣り合っている頂点に関して2点間距離を計算する問題を解けばよい。これはLCAがあればできる。LCAを求める過程でDFSの行き掛け順も求められる。
https://atcoder.jp/contests/typical90/submissions/59471323
ARC117-D とか類題かも
https://atcoder.jp/contests/arc117/tasks/arc117_d