提交时间:2023-08-09 11:55:08

运行 ID: 27480

#include <bits/stdc++.h> using namespace std; char a[101][101]; int n,m,ans; int fx[4]={1,-1,0,0}; int fy[4]={0,0,1,-1}; void dfs(int x,int y) { a[x][y]='0'; for(int i=0;i<4;i++) { int nx=x+fx[i]; int ny=y+fy[i]; if(nx>0&&nx<=n&&ny>0&&ny<=m&&a[nx][ny]!='0') { a[nx][ny]='0'; dfs(nx,ny); } } } int main() { cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) if(a[i][j]!='0') { dfs(i,j); ans++; } cout<<ans; return 0; }