标签:
2 3 4 1 0 0 0 0 0 1 1 1 1 1 0 5 5 1 1 1 1 0 0 0 1 0 1 0 0 0 0 0 1 1 1 0 0 0 0 1 1 1
23
//用的是深搜、、该题中只要坐标是1,将其上、下、左、右都扫描到。。只要已经判断过的将坐标1的置为0
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int a[100][100],m,n;
int b[4][2]={0,1,0,-1,-1,0,1,0};
void dfs(int c,int d)
{
a[c][d]=0;
int i,x,y;
for(i=0;i<4;i++)
{
x=c+b[i][0];
y=d+b[i][1];
if(x>=0&&x<m&&y>=0&&y<n&&a[x][y]==1)
dfs(x,y);
}
}
int main()
{
int T,t,i,j;
cin>>T;
while(T--)
{
cin>>m>>n;
t=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
cin>>a[i][j];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(a[i][j]==1)
{
dfs(i,j);
t++;
}
}
}
cout<<t<<endl;
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/phytn/article/details/46763755