您的位置:首页 > 其它

hdu 1760

2017-08-01 08:37 211 查看
#include<cstdio>
#include<cstring>
using namespace std;
int d[100][100],n,m;
int ok(int i,int j)
{
if(!d[i][j]&&!d[i+1][j]&&!d[i][j+1]&&!d[i+1][j+1])
return 1;
else
return 0;
}
int dfs()
{
for(int i=0;i<n-1;i++)
for(int j=0;j<m-1;j++)
{
if(ok(i,j))
{
d[i][j]=d[i+1][j]=d[i][j+1]=d[i+1][j+1]=1;
if(!dfs())
{
d[i][j]=d[i+1][j]=d[i][j+1]=d[i+1][j+1]=0;
return 1;
}
d[i][j]=d[i+1][j]=d[i][j+1]=d[i+1][j+1]=0;
}
}
return 0;
}
int main()
{
char str[1000];
while(~scanf("%d%d",&n,&m)&&(n+m))
{
for(int i=0;i<n;i++)
{
scanf("%s",str);
for(int j=0;j<m;j++)
d[i][j]=str[j]=='1'?1:0;
}
if(dfs())
printf("Yes\n");
else
printf("No\n");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: