生命体个数
2023-08-17 15:21:56
发布于:广东
#include<bits/stdc++.h>
using namespace std;
int n,m,vis[5005][5005],ans;
char a[5005][5005];
int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};
struct node{
int x,y;
};
void bfs(int x1,int y1){
queue<node> que;
que.push({x1,y1});
vis[x1][y1]=1;
while(!que.empty()){
node n1=que.front();
que.pop();
for(int i=0;i<4;i++){
int xx=n1.x+dx[i];
int yy=n1.y+dy[i];
if(xx>=0 && xx<n &&yy>=0 && yy<m && vis[xx][yy]==0 && a[xx][yy]!='0'){
vis[xx][yy]=1;
que.push({xx,yy});
}
}
}
}
int main(){
cin>>n>>m;
for(int i=0;i<n;i++)cin>>a[i];
//算
for(int i=0;i<n;i++){
for(int j=0;j<m;j++){
if(a[i][j]!='0' && vis[i][j]==0){
bfs(i,j);
ans++;
}
}
}
cout<<ans;
return 0;
}
全部评论 2
那个互关贴是我老师发的!(赶紧删评
2023-08-18 来自 河北
0哈哈哈
2023-08-18 来自 河北
1给我点赞呀!
2023-08-18 来自 河北
1
我都不知道怎么感谢你🙃
2023-08-17 来自 广东
0
有帮助,赞一个