题意(分析):
0和1分别代表有没有草,输入一组数据,判断周围的数据的没草的是否挨着,挨着就输出NO;
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,m,a[11][11],i,j;
while(cin>>n>>m&&m!=0&&n!=0)
{
int k=0;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cin>>a[i][j];
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
if(a[i][j]==0)
k=1;
if(k==0)
cout<<"No"<<endl;
else
{
for(i=1;i<=n-1;i++)
{ for(j=1;j<=m;j++)
if(a[i][j]==0&&a[i+1][j]==0)
{
cout<<"No"<<endl;
k=2;
break;
}
if(k==2)
break;
}
if(k!=2)
for(i=1;i<=n;i++)
{for(j=1;j<=m-1;j++) if(a[i][j]==0&&a[i][j+1]==0) {
cout<<"No"<<endl;
k=2;
break;
}
if(k==2)
break;
}
}
if(k!=2&&k!=0)
cout<<"Yes"<<endl;
}
return 0;
}
感想:
题目不难,但是代码比较繁琐,需要一步一步思考,切忌着急;