せいしゅん404 • 1年前
using namespace std;
struct point{int c,r;}; char monkey[N][N]; int dr[]={0,1,0,-1},dc[]={1,0,-1,0}; queue q; int main(void){
int n,m,ans=0;
fill(monkey[0],monkey[0]+105*105,'0');
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
cin>>monkey[i][j];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(monkey[i][j]!='0'){
ans++;
point po;
po.r=i,po.c=j;
monkey[i][j]='0';
q.push(po);
while(!q.empty()){
po=q.front();
for(int i=0;i<4;i++){
point poN;
poN.r=po.r+dr[i],poN.c=po.c+dc[i];
if(monkey[poN.r][poN.c]!='0'){
q.push(poN),monkey[poN.r][poN.c]='0';
}
}
q.pop();
}
}
}
}
cout<<ans<<" "<<endl;
return 0;
}
评论:
请先登录,才能进行评论