显示原始代码
#include <cstdio>
#include <algorithm>
using namespace std;
int main() {
int T, N, M, n, m = 0;
int bloom = 0;
char mo[50][50], fl[50][50];
scanf("%d", &T);
while (T--) {
bloom = 0;
scanf("%d%d", &N, &M);
for (int i = 0; i < N; i++) scanf("%s,", &mo[i]);
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++) scanf("%s,", &fl[i]);
for (int i = 0; i < N; i++) {
for (int j = 0; j < M; j++) {
bool flag = true;
int a = i - (n - 1) / 2;
int b = j - (m - 1) / 2;
for (int k = max(0, a); k <= min(N - 1, i + (n - 1) / 2); k++) {
for (int p = max(0, b); p <= min(M - 1, j + (m - 1) / 2); p++) {
if (!flag)
break;
if (mo[k][p] == '#' && fl[k - i + (n - 1) / 2][p - j + (m - 1) / 2] == '#')
flag = false;
}
if (!flag)
break;
}
if (flag)
bloom++;
}
}
printf("%d", bloom);
}
return 0;
}