博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
A - Beautiful Meadow
阅读量:5092 次
发布时间:2019-06-13

本文共 2642 字,大约阅读时间需要 8 分钟。

Tom's Meadow

Tom has a meadow in his garden. He divides it into N * M squares. Initially all the squares were covered with grass. He mowed down the grass on some of the squares and thinks the meadow is beautiful if and only if

  1. Not all squares are covered with grass.
  2. No two mowed squares are adjacent.

Two squares are adjacent if they share an edge. Here comes the problem: Is Tom's meadow beautiful now?

 

Input

 

The input contains multiple test cases!

Each test case starts with a line containing two integers N, M (1 <= N, M <= 10) separated by a space. There follows the description of Tom's Meadow. There're N lines each consisting of M integers separated by a space. 0(zero) means the corresponding position of the meadow is mowed and 1(one) means the square is covered by grass.

A line with N = 0 and M = 0 signals the end of the input, which should not be processed

 

Output

 

One line for each test case.

Output "Yes" (without quotations) if the meadow is beautiful, otherwise "No"(without quotations).

 

Sample Input

 

2 2

1 0
0 1
2 2
1 1
0 0
2 3
1 1 1
1 1 1
0 0

 

Sample Output

 

Yes

No
No

1 #include
2 #include
3 #include
4 int map[20][20],vis[20][20]; 5 int x[]={
0,1,-1,0}; 6 int y[]={
1,0,0,-1}; 7 int n,m; 8 int dfs(int i,int j) 9 {10 int k,flag;11 int tx,ty;12 vis[i][j]=1;13 flag=0;14 for(i=1;i<=n;i++)15 for(j=1;j<=m;j++)16 17 {18 for(k=0;k<4;k++)19 {20 tx=i+x[k];21 ty=j+y[k];22 if(tx>=1&&tx<=n&&ty>=1&&ty<=m&&!vis[tx][ty]&&map[tx][ty]==map[i][j])23 {24 if(map[i][j]==0)25 {26 flag=1;27 break;28 }29 }30 31 }32 }33 return flag;34 }35 int main ()36 {37 int sum,flag,i,j;38 while(scanf("%d %d",&n,&m)!=EOF)39 {40 if(n==0&&m==0) break;41 sum=0;42 memset(vis,0,sizeof(vis));43 for(i=1;i<=n;i++)44 for(j=1;j<=m;j++)45 scanf("%d",&map[i][j]);46 for(i=1;i<=n;i++)47 {48 for(j=1;j<=m;j++)49 {50 if(map[i][j]==1)51 sum++;52 }53 }54 if(sum==n*m)55 {56 printf("No\n");57 continue;58 }59 else60 {61 flag=dfs(1,1);62 if(flag) printf("No\n");63 else printf("Yes\n");64 }65 }66 return 0;67 }

 

 

转载于:https://www.cnblogs.com/LK1994/archive/2013/03/30/2990609.html

你可能感兴趣的文章
csv HTTP简单表服务器
查看>>
OO设计的接口分隔原则
查看>>
数据库连接字符串大全 (转载)
查看>>
java类加载和对象初始化
查看>>
对于负载均衡的理解
查看>>
django简介
查看>>
window.event在IE和Firefox的异同
查看>>
常见的js算法面试题收集,es6实现
查看>>
IO流写出到本地 D盘demoIO.txt 文本中
查看>>
Windows10 下Apache服务器搭建
查看>>
HDU 5458 Stability
查看>>
左手坐标系和右手坐标系
查看>>
solr后台操作Documents之增删改查
查看>>
http://yusi123.com/
查看>>
文件文本的操作
查看>>
Ubuntu linux下gcc版本切换
查看>>
记一次Web服务的性能调优
查看>>
jQuery.form.js使用
查看>>
(转)linux sort,uniq,cut,wc命令详解
查看>>
关于ExecuteNonQuery执行的返回值(SQL语句、存储过程)
查看>>