20
5 5
#####
#...#
#...#
#....
.....
3 3
###
###
###
5 5
#####
#####
#####
#####
#####
<27002 bytes omitted>
用户输出
5
25
25
25
22
37
5
27
7
57
4
9
0
1
1389
895
915
1
1079
1058
系统信息
Exited with return code 0
编号 | 题目 | 状态 | 分数 | 总时间 | 内存 | 代码 / 答案文件 | 提交者 | 提交时间 |
---|---|---|---|---|---|---|---|---|
#81500 | #1010. J. 团队配置,新奇的面试题 | Accepted | 100 | 9 ms | 244 K | C++ 11 (Clang) / 1.2 K | 焱 | 2022-10-30 18:55:08 |
#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\n", bloom);
}
return 0;
}