由于数据非常小,直接暴力就行。
代码:
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;
char aa[55][55],bb[55][55];
int a[55][55],b[55][55];
int na,ma,nb,mb,x,y,i,j,k,xx,yy;
int main()
{
cin>>na>>ma;
for(i=0;i<na;i++)
{
scanf("%s",aa[i]);
for(j=0;j<ma;j++)
{
a[i+1][j+1]=aa[i][j]-'0';
}
}
cin>>nb>>mb;
for(i=0;i<nb;i++)
{
scanf("%s",bb[i]);
for(j=0;j<mb;j++)
{ b[i+1][j+1]=bb[i][j]-'0';//cout<<b[i+1][j+1]<<" ";
}
}
int sum=0,ans=0,xx=-nb,yy=-mb,nn,mm;
for(x=-na;x<=nb;x++)
for(y=-ma;y<=mb;y++)
{
for(i=1;i<=na;i++)
for(j=1;j<=ma;j++)
{
nn=i+x;mm=j+y;
if(nn>0&&nn<=nb&&mm>0&&mm<=mb&&a[i][j]==1&&b[nn][mm]==1)
sum++;
}
if(ans<sum)
{ ans=sum;xx=x;yy=y;
//cout<<ans<<"**"<<xx<<"**"<<yy<<endl;
}
sum=0;
}
printf("%d %d\n",xx,yy);
return 0;
}