题意:
给定的图中不能全为1,且不能有相邻的0(上下左右相邻)。
代码:
#include<iostream>
using namespace std;
int main()
{
bool map[12][12];
int n,m;
while(cin>>n>>m&&(n||m))
{
bool flag=false,ans=true;//flag代表是否出现0,ans为结果
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
{
cin>>map[i][j];
if(!map[i][j])
flag=true;
}
}
if(flag==false)ans=false;//如果全为1,直接不需判断
if(ans)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m-1;j++)
{
if(map[i][j]==0&&map[i][j+1]==0)//左右相邻0
{
ans=false;
break;
}
}
}
}
if(ans)
{
for(int i=0;i<n-1;i++)
{
for(int j=0;j<m;j++)
{
if(map[i][j]==0&&map[i+1][j]==0)//上下相邻0
{
ans=false;
break;
}
}
}
}
if(ans==false)cout<<"No\n";
else cout<<"Yes\n";
}
return 0;
}