公式
F - Buildings 2 解説
by
Bonus : オンラインで解いてください
F - Buildings 2 解説
by
toam
Bonus : オンラインで解いてください
オンラインで(クエリを先読みしないで)解くことができます.
解法
高さ $N+1$ のダミーのビルを ビル $N$ の東に置きます.各 $i\ (1\leq i\leq N)$ に対して,ビル $i$ より東にあるビル $i$ より高いビルのうち,最も西にあるものをビル $p_i$ とします.$(1, p_1),\ldots,(N,p_N)$ に辺が貼られた $N+1$ 頂点のグラフ(木)を考えると,ビル $i$ から見ることができるビルは頂点 $i+1$ と頂点 $N+1$ のパス上に並びます.よって,木を頂点 $N+1$ を根とする根付き木として考えたとき,ビル $l,r$ の両方から見ることができるビルの個数は $\mathrm{lca}(l+1,r+1)$ の深さになることが分かります.
投稿日時:
最終更新: