sheet - 色紙 (Sheet) 解説 by Mitsubachi


各紙について上下左右の端を管理します。この時、上の端は見えている中で一番上側にあるものを参照して構いません。他も同様です。
その情報と $C$ を基にすると $2$ 枚の紙について、上下関係が明らかになるペアが存在します。例えば、紙 $1$ の範囲の中に $C_{i,j}=2$ となるような $i,j$ があれば、紙 $2$ は紙 $1$ より上に存在します。そのような上下関係に基づいて有向辺のグラフ $G$ を作ります。上の場合 $2$ から $1$ に辺を張ります。

$G$ において、入次数が $0$ の頂点 $v$ に対応する紙 $v$ は一番上にあるとしてよく、以後 $G$ から頂点 $v$ とそれに隣接する辺はないとみなして構いません。このような操作はBFSによって行えます。

\(G\) を構築するのは \(O(NHW)\) で可能、 \(G\) でBFSを行うのは辺の数が \(O(N^2)\) であることを考えると \(O(N^2)\) なので、 \(O(NHW+N^2)\) で解くことができました。

投稿日時:
最終更新: