No.048 D

木を根付き木と考え, 頂点 の深さを , 頂点 の LCA を とする.

たこ焼き屋に寄らないときの所要時間は,

である.

たこ焼き屋に寄る場合は, の経路上のどこかの点 から一番近いたこ焼き屋に寄って, 再度 に戻ることになる. から一番近いたこ焼き屋までの距離を とする.

所要時間は 上にあるときは,

となり, 上にあるときは,

となる.

はすべてのたこ焼き屋をキューに入れて幅優先探索をすれば求められる.

をすべてあらかじめ計算しておき, から 個上までの頂点までの最小値をダブリングの要領で計算しておけば, で求めることができる.