- 分享
6
- @ 2024-6-8 17:45:59
using namespace std;
int n,m;
bool vis[505][505];
char mp[505][505];
int dx[4]={-1,0,1,0};
int dy[4]={0,1,0,-1};
struct Node{
int x,y,step;
};
int bfs(int sx,int sy){
queue<Node> q;
Node t={sx,sy,1};
q.push(t);
vis[sx][sy]=1;
while(!q.empty()){
t=q.front();
q.pop();
for(int i=0;i<4;i++){
int xx=t.x+dx[i];
int yy=t.y+dy[i];
if(xx>=1&&xx<=n&&yy>=1&&yy<=m&&mp[xx][yy]!='0'){
q.push({xx,yy,t.step+1});
mp[xx][yy]='0';
}
}
}
return -1;
}
int main(){
int cnt=0;
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>mp[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(mp[i][j]!='0'){
bfs(i,j);
cnt++;
}
}
}
cout<<cnt;
return 0;
}
0 条评论
目前还没有评论...