https://www.luogu.com.cn/problem/B4040
my code:
#include<bits/stdc++.h>
using namespace std;
char use[110][110];
char sample[5][5];
int n,m;
bool is_ok(int x,int y)
{
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
if(use[x+i][y+j]!=sample[i][j])
{
return false;
//有一处不符合sample
}
}
}
return true;//all clear!
}
int main()
{
for(int i=0;i<=3;i++)
{
sample[0][i] = sample[3][i] = '0';
}
sample[1][0] = sample[1][3] = sample[2][0] = sample[2][3] = '0';
sample[1][1] = sample[1][2] = sample[2][1] = sample[2][2] = '1';
//给sample赋值
int t;
cin>>t;
while(t--)
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>use[i][j];
}
}
if(n<4||m<4)//根本就不行
{
cout<<"No"<<endl;
continue;
}
else
{
for(int i=1;i<=n-3;i++)
{
for(int j=1;j<=m-3;j++)
{
//为了节省时间-3
if(is_ok(i,j))
{
cout<<"Yes"<<endl;
continue;
}
}
}
cout<<"No"<<endl;
continue;
//都没过
}
}
return 0;
}