#L9122. [USACO23FEB] Stamp Grid B

[USACO23FEB] Stamp Grid B

P9122 [USACO23FEB] Stamp Grid B

题目描述

盖章绘画是一幅黑白画,绘制在一个 N×NN \times N 的画布上,其中某些格子被涂黑,而其他格子为空白。它可以用一个 N×NN \times N 的字符数组表示(1N201 \leq N \leq 20)。如果数组的第 ii 行第 jj 列的值为 *,说明该格子被涂黑;如果为 .,则说明该格子为空白。

Bessie 想要完成一幅盖章绘画,因此 Farmer John 借给了她一块 K×KK \times K1KN1 \leq K \leq N)的盖章,以及一块空的 N×NN \times N 画布。Bessie 可以将盖章顺时针旋转 9090^\circ,并在画布上的任意位置盖章,只要盖章完全在画布范围内即可。形式化地说,盖章时,Bessie 选择整数 i,ji,j,满足 i[1,NK+1]i \in [1,N-K+1]j[1,NK+1]j \in [1,N-K+1];对于每个 (i,j)(i',j'),其中 1i,jK1 \leq i',j' \leq K,画布上的格子 (i+i1,j+j1)(i+i'-1,j+j'-1) 会被涂黑,如果盖章在 (i,j)(i',j') 处有墨迹。Bessie 可以在每次盖章之前旋转盖章。一旦画布上的某个格子被涂黑,就会保持涂黑状态。

Farmer John 想知道,Bessie 是否可以用他的盖章完成她想要的盖章绘画。对于每个 TT1T1001 \leq T \leq 100)个测试用例,帮助 Farmer John 回答这个问题。

输入格式

第一行包含一个整数 TT,表示测试用例的数量。

每个测试用例以一个整数 NN 开始,接下来是 NN 行,每行包含由 *. 构成的字符串,表示 Bessie 想要的盖章绘画。接下来的行包含一个整数 KK,随后是 KK 行,每行包含由 *. 构成的字符串,表示 Farmer John 的盖章。

相邻的测试用例之间用空行分隔。

输出格式

对于每个测试用例,输出一行 YESNO

样例 1 的解释

在第一个测试用例中,Bessie 可以按以下顺序完成盖章:

  1. (1,1)(1,1) 处盖章
  2. (1,2)(1,2) 处盖章
  3. (2,1)(2,1) 处盖章

在第二个测试用例中,Bessie 可以按以下顺序完成盖章:

  1. (2,2)(2,2) 处盖章
  2. (2,1)(2,1) 处盖章
  3. 顺时针旋转 9090^\circ
  4. 顺时针旋转 9090^\circ
  5. (1,2)(1,2) 处盖章

在第三个测试用例中,无法涂黑中间格子,因此无法完成绘画。

在第四个测试用例中,Bessie 可以按以下顺序完成盖章:

  1. 顺时针旋转 9090^\circ
  2. (1,1)(1,1) 处盖章
  3. (1,2)(1,2) 处盖章
  4. (2,2)(2,2) 处盖章

输入输出样例 1

4

2
**
*.
1
*

3
.**
.**
***
2
.*
**

3
...
.*.
...
3
.*.
...
...

3
**.
.**
..*
2
.*
*.
YES
YES
NO
YES