细胞

来源:互联网 发布:仿mac桌面软件 编辑:程序博客网 时间:2024/04/30 02:15
#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
const int d[4][2]={{1,0},{0,1},{-1,0},{0,-1}}; 
using namespace std;
struct node{
int x,y;
}q[10100];
int f[1005][1005];
int main(){
int i,j,k,m,n,ans;
char now;
char c; 
cin>>n>>m;
    c=getchar();
for(i=1;i<=n;i++,c=getchar())
{
for(j=1;j<=m;j++){
cin>>now;
f[i][j]=now-'0';
}
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(f[i][j]){
ans++;
int a=1,b=1;
q[a].x=i;
q[a].y=j;
f[i][j]=0;
while(a<=b){
for(k=0;k<=3;k++){
int u=q[a].x+d[k][0],v=q[a].y+d[k][1];
if(f[u][v]){
q[++b].x=u;
q[b].y=v;
f[u][v]=0;
}
}
a++;
}


}
cout<<ans; 
return 0;
}
0 0