您的位置:首页 > 其它

QDU07 GZS与小公园

2016-09-13 15:34 316 查看
GZS与小公园

发布时间: 2015年9月6日 15:18 最后更新: 2016年6月30日 21:57 时间限制: 3000ms 内存限制: 256M

描述

某天GZS漫步在学校新建的小公园,他发现那里建成了一些水池和小河道。我们暂且把它们统一看成水池。假设公园旁有一张小公园的地图,上面仅标识了此处是否是水池,你能帮GZS计算出该地图中一共有几个水池吗。

输入

第一行输入一个整数N,表示共有N组测试数据 每一组数据都是先输入该地图的行数m(0

#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
int map[110][110]={0};
int n,m;
void dfs(int x,int y)
{
int next[4][2]=
{
{1,0},
{0,1},
{-1,0},
{0,-1}
};
int dx=x,dy=y;
map[x][y]=0;
for(int i=0;i<4;i++)
{
dx=x+next[i][0];
dy=y+next[i][1];
if(0<=dx&&dx<n&&0<=dy&&dy<m&&map[dx][dy]==1)
dfs(dx,dy);
}
return ;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int count=0;
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
scanf("%d",&map[i][j]);
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
if(map[i][j]==1)
{
dfs(i,j);
count++;
}
}
printf("%d\n",count);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: