原来的'/n'被替换为' ',改了一下。
#include<iostream>
#include<vector>
usingnamespacestd;
constintN=4;
vector<vector<int>>grass;
intm,n;
structPoint
...{
introw,col;
};

Pointdir[N]=...{...{1,0},...{0,1},...{-1,0},...{0,-1}};
boolinGrass(Pointp)
...{
returnp.row>=0&&p.row<m&&p.col>=0&&p.col<n;
}
boolisBeautiful(Pointp)
...{
for(inti=0;i<N;i++)
...{
Pointt;
t.row=p.row+dir[i].row;
t.col=p.col+dir[i].col;
if(inGrass(t)==true&&grass[t.row][t.col]==0)returnfalse;
}
returntrue;
}
boolrun()
...{
cin>>m>>n;
if(m==0&&n==0)returnfalse;
grass.resize(m);
inti,cnt=0;
for(i=0;i<m;i++)
...{
grass[i].resize(n);
for(intj=0;j<n;j++)
...{
cin>>grass[i][j];
if(grass[i][j]==0)cnt++;
}
}
if(cnt==0)//numsof0=0
...{
cout<<"No"<<endl;
returntrue;
}
for(i=0;i<m;i++)
...{
for(intj=0;j<n;j++)
if(grass[i][j]==0)
...{
Pointt=...{i,j};
if(isBeautiful(t)==false)
...{
cout<<"No"<<endl;
returntrue;
}
}
}
cout<<"Yes"<<endl;
returntrue;
}

intmain()...{
while(run());
return0;
}
本文介绍了一个通过C++实现的算法,该算法用于判断一个由0和1组成的矩阵中是否存在美丽的草地。美丽的草地定义为:对于矩阵中的每一个0,其上下左右四个方向上的格子都不允许出现0。如果矩阵满足这一条件,则输出Yes;否则输出No。
7万+

被折叠的 条评论
为什么被折叠?



