No.019 D 問題 コード まずは頂点 と頂点 () の距離を問い合わせる. これを とする. なお とおける. ここで, が最も大きい頂点を とする. 任意の2頂点間の距離を とすると, が最大となるとき, または が成り立つ. すなわち, 最長距離となる2頂点の片方は である. (証明は省くが, でない2頂点 を仮定して の位置関係ごとに または を と入れ替えた方が長い距離になることが示せる) よって, 次に頂点 と頂点 ( かつ ) の距離を問い合わせ, とこの問い合わせの結果の中の最大値が木の直径である.