No.363

木を HL 分解して, 分解したパスごとに が門松列になっているかを調べておく. 調べた結果を論理積を取る Sparse Table に突っ込んでおくことでパス内の任意の区間が門松列列になっているかどうかを確認できるようにしておく.

あとは の LCA を求め, が門松列列になるかどうかを確認し, さらに の近傍で門松列になるかどうかを確認する.