Official

C - Digital Graffiti Editorial by QCFium


ある点 \((x, y)\) が頂点であることと、その点の周囲 \(4\) マス \((S_{x, y}, S_{x + 1, y}, S_{x, y + 1}, S_{x + 1, y + 1})\)のうち # がちょうど \(1\) 個または \(3\) 個あることが同値であることが分かります。

注意 :
周囲にちょうど \(2\)# がある場合は、自己交叉がないという制約より、その \(2\) つが対角線上に配置されていることはありません。よって、隣り合って配置されていることになりますが、多角形の周がその点で曲がっていないので頂点である必要はありません。

\(S\) の端の列や行が全て . という制約があるので、\(1 \le x \lt H, 1 \le y \lt W\) の範囲で調べればよく、実装の際に \(S\) の範囲外の参照に特別に気を付ける必要はありません。

posted:
last update: