【题目链接】
【思路要点】
- 考虑 K = 1 K=1 K=1 的情况,我们需要判断是否存在相邻的黑色像素。
- 如果我们知道两个黑色像素的相对方向,则可以采取如下策略:
- 不妨令两个黑色像素在同一列,计算每一行的 o r or or ,并计算得到的数组的前缀 o r or or 与后缀 o r or or ,记为 p r e i , s u f i pre_i,suf_i prei,sufi 。若存在一个 i i i 使得 p r e i & s u f i + 2 pre_i\&suf_{i+2} prei&sufi+2 为 1 1 1 ,则说明两个黑色像素所在的行相距至少为 2 2 2 ,从而可以判断它们是否相邻。
- 在不知道两个黑色像素的相对方向时,可以采取如下策略:
- 若将坐标系进行旋转 ( x , y ) → ( x − y , x + y ) (x,y)\rightarrow(x-y,x+y) (x,y)→(</