邮票画是一幅在N×N画布上的黑白画,其中某些单元格是着墨的,而其他单元格是空白的。它可以用N×N个字符数组(1≤N≤20)来描述。如果画布在该正方形和处包含墨水,则数组第j列的第i项等于*。否则
贝西有一张她想创作的邮票画,所以农夫约翰借给她一张K×K(1≤K≤N)邮票和一张空的N×N画布。Bessie可以将印章顺时针旋转90∘,并在网格上的任何位置盖章,只要印章完全在网格内。形式上,为了盖章,Bessie选择整数i,j,使得i∈[1,N−K+1]和j∈[1、N−K+1];对于每个(i′,j′),使得1≤i′,j′≤K,画布单元(i+i′−1,j+j′−1)被涂成黑色,如果邮票在(i′、j′)处有墨水。贝西可以在冲压之间随时旋转印章。画布单元格一旦涂成黑色,它将保持黑色。
农夫约翰想知道贝西是否有可能用他的邮票创作出她想要的邮票。对于每个T(1≤T≤100)测试用例,帮助Farmer John回答这个问题。
INPUT FORMAT(输入来自终端/stdin):
输入的第一行包含T,即测试用例的数量。
每个测试用例都以一个整数N开头,后跟N行,每行包含一个s和.s字符串,表示Bessie所需的邮票绘画。下一行包含K,后面是K行,每行包含一个和.s字符串,代表Farmer John的邮票。
连续的测试用例用换行符分隔。
OUTPUT FORMAT(输出格式)(将输出打印到终端/标准输出):
对于每个测试用例,在单独的行上输出“YES”或“NO”。
样本输入:
4.
2.
**
*.
1.
*
3.
.**
.**
2.
.*
**
3.
...
.*.
...
3.
.*.
...
...
3.
**.
.**
..*
2.
.*
*.
样本输出:
YES
YES
NO
YES
在第一个测试用例中,Bessie可以执行以下冲压顺序:
在(1,1)处盖章
在(1,2)处盖章
盖章(2,1)
在第二个测试用例中,Bessie可以执行以下冲压顺序:
盖章(2,2)
盖章(2,1)
旋转90∘
旋转90∘
在(1,2)处盖章
在第三个测试用例中,不可能绘制中间单元格。
在第四个测试用例中,Bessie可以执行以下冲压顺序:
旋转90∘
在(1,1)处盖章
在(1,2)处盖章
盖章(2,2)
这是今天学校布置的题目,我不会,希望各位帮忙解答一下(用C++的算法进行),最希望给出代码和思路!