http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2850
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include<stdio.h> int main() { int n, m ; int i, j ; int map[12][12] ; while(scanf("%d%d",&n,&m)!=EOF) { if(n==0&&m==0) break ; for(i=0; i<12; i++) for(j=0; j<12; j++) { map[i][j] = 1 ; } bool flag1 = false ; bool flag2 = true ; for(i=1; i<=n; i++) { for(j=1; j<=m; j++) { scanf("%d", &map[i][j]) ; if(map[i][j]==0) { flag1 = true ; } } } for(i=1; i<=n&&flag2; i++) { for(j=1; j<=m&&flag2; j++) { if((map[i-1][j]==0||map[i+1][j]==0||map[i][j-1]==0||map[i][j+1]==0)&&map[i][j]==0) { flag2 = false ; } } } if(flag1&&flag2) printf("Yes\n") ; else printf("No\n") ; } return 0 ; }
就是起初全部是草覆盖,经过除草之后看是否是Beautiful Meadow,1、不能全部为草,2、相邻的不能全为空地。