banner - 横断幕 (Banner) Editorial by Mitsubachi
O(HW)
$O(HW)$ の解法を紹介します。
初めに、条件を満たす長方形の頂点の色を考えます。これは左上右上左下右下の順で $0221$ と $0122$ の $2$ 種類存在します。 (色の入れ替えと回転で一致するものは同一視しています。)
これらを眺めていると、条件を満たす長方形には以下のような頂点 $X$ があることに気づきます。
- $X$ と $X$ に隣接している $2$ 頂点 $Y,Z$ からなる $3$ 頂点の色はすべて異なる。
よって、答えは上の条件を満たす \(X,Y,Z\) の数を \(2\) で割った値とあらわすことができます。
これは、あらかじめ各行各列における色 \(0,1,2\) の頂点の数を前準備 \(O(HW)\) で求めることで \(X\) を決め打った際に \(Y,Z\) としてありえるものの数が \(O(1)\) でわかるので \(O(HW)\) で求めることができます。
posted:
last update: