P9122 [USACO23FEB] Stamp Grid B

题目描述

盖章绘画是一幅黑白画,绘制在一个 $N \times N$ 的画布上,其中某些格子被涂黑,而其他格子为空白。它可以用一个 $N \times N$ 的字符数组表示($1 \leq N \leq 20$)。如果数组的第 $i$ 行第 $j$ 列的值为 `*`,说明该格子被涂黑;如果为 `.`,则说明该格子为空白。 Bessie 想要完成一幅盖章绘画,因此 Farmer John 借给了她一块 $K \times K$($1 \leq K \leq N$)的盖章,以及一块空的 $N \times N$ 画布。Bessie 可以将盖章顺时针旋转 $90^\circ$,并在画布上的任意位置盖章,只要盖章完全在画布范围内即可。形式化地说,盖章时,Bessie 选择整数 $i,j$,满足 $i \in [1,N-K+1]$ 且 $j \in [1,N-K+1]$;对于每个 $(i',j')$,其中 $1 \leq i',j' \leq K$,画布上的格子 $(i+i'-1,j+j'-1)$ 会被涂黑,如果盖章在 $(i',j')$ 处有墨迹。Bessie 可以在每次盖章之前旋转盖章。一旦画布上的某个格子被涂黑,就会保持涂黑状态。 Farmer John 想知道,Bessie 是否可以用他的盖章完成她想要的盖章绘画。对于每个 $T$($1 \leq T \leq 100$)个测试用例,帮助 Farmer John 回答这个问题。

输入格式

第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例以一个整数 $N$ 开始,接下来是 $N$ 行,每行包含由 `*` 和 `.` 构成的字符串,表示 Bessie 想要的盖章绘画。接下来的行包含一个整数 $K$,随后是 $K$ 行,每行包含由 `*` 和 `.` 构成的字符串,表示 Farmer John 的盖章。 相邻的测试用例之间用空行分隔。

输出格式

对于每个测试用例,输出一行 `YES` 或 `NO`。 ### 样例 1 的解释 在第一个测试用例中,Bessie 可以按以下顺序完成盖章: 1. 在 $(1,1)$ 处盖章 2. 在 $(1,2)$ 处盖章 3. 在 $(2,1)$ 处盖章 在第二个测试用例中,Bessie 可以按以下顺序完成盖章: 1. 在 $(2,2)$ 处盖章 2. 在 $(2,1)$ 处盖章 3. 顺时针旋转 $90^\circ$ 4. 顺时针旋转 $90^\circ$ 5. 在 $(1,2)$ 处盖章 在第三个测试用例中,无法涂黑中间格子,因此无法完成绘画。 在第四个测试用例中,Bessie 可以按以下顺序完成盖章: 1. 顺时针旋转 $90^\circ$ 2. 在 $(1,1)$ 处盖章 3. 在 $(1,2)$ 处盖章 4. 在 $(2,2)$ 处盖章

说明/提示

### Explanation for Sample 1 In the first test case, Bessie can perform the following sequence of stampings: 1. Stamp at $(1,1)$ 2. Stamp at $(1,2)$ 3. Stamp at $(2,1)$ In the second test case, Bessie can perform the following sequence of stampings: 1. Stamp at $(2,2)$ 2. Stamp at $(2,1)$ 3. Rotate $90^{\circ}$ 4. Rotate $90^{\circ}$ 5. Stamp at $(1,2)$ In the third test case, it is impossible to paint the middle cell. In the fourth test case, Bessie can perform the following sequence of stampings: 1. Rotate $90^{\circ}$ 2. Stamp at $(1,1)$ 3. Stamp at $(1,2)$ 4. Stamp at $(2,2)$