标签:
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
2 3
回顾,看见这道题就想起来上次省赛,真心失落。深搜。
#include<iostream>
#include<stdio.h>
#include<string.h>
using namespace std;
int a[100][100],m,n;
int c[4]={0,1,0,-1};
int d[4]={1,0,-1,0};
void dfs(int x ,int y)
{
int i;
a[x][y]=0;
for(i=0;i<4;i++)
{
if(x+c[i]>=0 && x+c[i]<m && y+d[i]>=0 && y+d[i]<n &&a[x+c[i]][y+d[i]]==1)
{
dfs(x+c[i],y+d[i]);
}
}
}
int main()
{
int T,i,j,count;
cin>>T;
while(T--)
{
count=0;
cin>>m>>n; //3 4
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);
count++;
}
}
}
cout<<count<<endl;
}
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:
原文地址:http://blog.csdn.net/zuguodexiaoguoabc/article/details/46762297