CF389B Fox and Cross

题目描述

狐 Ciel 有一个包含 $n$ 行 $n$ 列的棋盘,所以棋盘共有 $n \times n$ 个格子。每个格子中包含符号 . 或符号 \#。 “十字”指的是棋盘中恰好五个格子组成的、形状如十字架的连通块,如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF389B/5ccac31668e0d529fa8a5f9e69b4dcfcf1f3b650.png) Ciel 想要在棋盘上画若干个(可以为零)十字。每一个十字必须覆盖恰好五个包含 \# 的格子,并且任意包含 \# 的格子都必须属于某个十字。任意两个十字不能有重叠的格子。 请你判断 Ciel 是否能够如上所述地在棋盘上画十字。

输入格式

第一行包含一个整数 $n$($3 \leq n \leq 100$),表示棋盘的大小。 接下来的 $n$ 行,每行 $n$ 个字符,表示棋盘的每一行。每个字符为 . 或 \#。

输出格式

输出一行,如果可以完全覆盖,输出 "YES"(不包含引号);否则输出 "NO"。

说明/提示

在样例 1 中,你可以画两个十字。如下图所示: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF389B/2961c8465879f5caacf5ebd47c02d06b75cd444e.png) 在样例 2 中,棋盘上共有 16 个 \#,而每个十字要用掉 5 个,但 $16$ 不是 $5$ 的倍数,所以无法完全覆盖所有 \#。 由 ChatGPT 5 翻译