だいたい競プロこの広告は、90日以上更新していないブログに表示しています。(ありがとう2017F問題の想定解じゃないのを書きます)」でした。AtCoder解法ほぼ解説の解法1とほぼいっしょなので、その解法を思いついた流れを整理しておく。b'をa'に繋ぐ図にすると、以下のようになる各操作でa'とb'の間に枝を張って木を作っておき、さらに繋げた側がいつ繋げたかを覚えておく。yについてのクエリを考える。行うと、下の図のようにオレンジの頂点を求めることができる*2。知りたいのは、下の図の緑の頂点が何回目の操作でオレンジの頂点と繋がったかである。ここで、木の頂点vの深さをdepth[v]とする*3。する)のいずれかである。どちらが緑の頂点になるかが問題である。うち、緑の頂点ではない方の頂点を赤の頂点とする(下図参照)。両方求めておいて、それらがオレンジの頂点と何回目の操作で繋がったかについて求めて、その大きい方を答えればよい。これはUnion-Findで木を作る途中で記憶してあるので、容易に答えられる。LCAという解法自体は割とすぐに求まったけど、LCAのライブラリがバグっており、散々だった。ライブラリをちゃんと整備しておくことは大事。人生最後のこどふぇす*4でパーカーを逃したため、非常に辛かった。さんで「何か書く」です。何が書かれるのか楽しみですね。Aにe-monさんと出た。(1)はてなブログをはじめよう!n_knuuさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。