21. D問題 解法
? まず,任意の1つの頂点を根と決める. そこから最も離
れている頂点のうち1つを v とおく.v を片方の頂点とし
て持つ,距離が直径のペアがあることを示したい.
? 背理法を使う.v と v から最も離れた点への距離より長
い頂点の組をa,b とおく.
? aとbのLCA(最近共通祖先,Lとおく)が根とvの間にある
とき
– 右の2つの図のいずれかの
形を取る(L=根となることもある)
– どちらの場合でも,
v--b は a--b より
短くなることはない.
LL
v a b
根 根
v a b
∵ v はLから最も離
れた頂点のうちの1
つであることに注目
22. D問題 解法
? aとbのLCA(最近共通祖先,Lとおく)が根とvの間にない
とき
– LとvのLCAをL2とおくと,右下のような図になる.
– この場合では,v--bの間の距離はa--bの距離より長い
? v はLから最も離れた頂点のうちの1つなので,
L2--v >= L2--L +L--a
? よって,
v--b=L2--v+L2--L+L--b>=2*L2--L+L--a+L--b
>L--a+L--b>=a--b
L
v a b
根
L2