uがvの先祖かどうか調べる方法を思い出す:
- 各頂点vにDFS順序で行きの番号pre[v]と帰りの番号post[v]を振る。uがvの(広義の)先祖である必要十分条件はpre[u]≤pre[v]かつpost[v]≤post[u]が成り立つことである。
K個の頂点のうち、pre[u]が最大であるようなuとpost[v]が最小であるようなvを選ぶ。この二つが同一のとき、上の性質を考えるとK個の頂点はすべてu=vの先祖なので、一つのパス上にある。
u=vの場合を考える。パスが存在するならこの2点が(極小のパスの)端点になっているので、K個の頂点がuまたはvの先祖であり、かつu,vのLCAの(狭義の)先祖ではないことが必要十分条件である。