rt.dfs代码如下:
#include"bits/stdc++.h"
using namespace std;
int a[103][103];
void dfs(int b,int c)
{
if (a[b][c]==0)
{
return;
}
if (a[b+1][c]!=0)
{
dfs(b+1,c);
}
if (a[b-1][c]!=0)
{
dfs(b-1,c);
}
if (a[b][c+1]!=0)
{
dfs(b,c+1);
}
if (a[b][c-1]!=0)
{
dfs(b,c-1);
}
a[b][c]=0;
return;
}
int main()
{
int n,m,ans=0;
scanf("%d%d",&n,&m);
char s;
for (int i=0;i<=1002;i++)
{
for (int j=0;j<=1002;j++)
{
a[i][j]=0;
}
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;j++)
{
scanf("%c",&s);
a[n][m]=int(s)-48;
}
}
for (int i=1;i<=n;i++)
{
for (int j=1;j<=m;i++)
{
if (a[i][j]!=0)
{
ans++;
dfs(i,j);
}
}
}
printf("%d",ans);
return 0;
}