您的位置:首页 > 其它

ZOJ Problem Set - 2850 Beautiful Meadow

2015-07-05 12:37 363 查看
用一个二维数组存储,0代表割草,1代表有草,要求两个割草的地方不能是相邻,不能每块都有草。

首先在输入时判断是否有块地方是0,即为割草。则flag = 1, 接下来通过相邻两块相加是否 == 0 来判断两块地是否都为割草。需要注意边界情况,初始化为1

#include <stdio.h>
int main()
{
int n, m, i, j, map[15][15], flag;
while(scanf("%d %d", &n, &m) && n && m)
{
flag = 0;
for(i = 1; i <= n+1; i++)
for(j = 1; j <= m+1; j++)
{
if(i < n+1 && j < m+1)
{
scanf("%d", &map[i][j]);
if(map[i][j] == 0)
flag = 1;
}
else
map[i][j] = 1;
}
for(i = 1; i <= n && flag; i++)
for(j = 1; j <= m && flag; j++)
{
if(map[i][j] + map[i+1][j] == 0)
flag = 0;
if(map[i][j] + map[i][j+1] == 0)
flag = 0;
}
if(flag)
printf("Yes\n");
else
printf("No\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: