代码:
#include <bits/stdc++.h>
using namespace std;
struct point{
int x,y;
bool b,c;
}a[110][110];
int n,m;
int dx[5] = {0,1,-1,0,0} , dy[5] = {0,0,0,1,-1};
void dg(int x1, int y1){
for(int ii=1;ii<=4;ii++){
int xx= a[x1][y1].x + dx[ii], yy= a[x1][y1].y + dy[ii];
if(xx>0 && xx<=n && yy>0 && yy<=m && a[xx][yy].b==1 && a[xx][yy].c==0){
a[xx][yy].c = 1;
dg(xx, yy);
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
string s;
cin>>s;
for(int j=0;j<s.size();j++){
if(s[j] == '0') a[i][j+1].b = 0;
else a[i][j+1].b = 1;
a[i][j+1].x = i;
a[i][j+1].y = j;
a[i][j+1].c = 0;
}
}
int ans=0;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(a[i][j].b == 1 && a[i][j].c == 0){
dg(i,j);
ans++;
}
}
}
cout<<ans;
return 0;
}
帮我的必被关注!