郁闷,巨水的题用python写的代码死活过不了,只好用C重写了一遍,真尼玛坑,纯粹浪费时间。。
#include<stdio.h>
int is_spot(char pic[60][61], char spot[60][61], int i, int j, int h, int w)
{
int ii, jj;
for (ii = 0; ii < h; ii++)
for (jj = 0; jj < w; jj++)
if (spot[ii][jj] != '.' && pic[i + ii][j + jj] != spot[ii][jj])
return 0;
return 1;
}
int main()
{
int H, W, h, w;
char pic[60][61], spot[60][61];
while (scanf("%d %d %d %d", &H, &W, &h, &w) != EOF)
{
getchar();
int i, j;
for (i = 0; i < H; i++)
gets(pic[i]);
for (i = 0; i < h; i++)
gets(spot[i]);
int total = 0;
for (i = 0; i <= H - h; i++)
for (j = 0; j <= W - w; j++)
if (is_spot(pic, spot, i, j, h, w))
total += 1;
printf("%d\n", total);
}
return 0;
}