#6 wa了求助

P1451 求细胞数量

```cpp #include<iostream> #include<cstdio> #include<cstring> using namespace std; const int N=100+10; int map[N][N],bin[N][N],queue[N][3],n,m,num=0; char s[N]; int dx[5]={-1,0,0,1},dy[5]={0,1,-1,0}; void bfs(int x,int y){ bin[x][y]=0; queue[1][1]=x; queue[1][2]=y; int head=0,tail=1,x_pos,y_pos; num++; do{ ++head; for(int i=0;i<=3;++i){ x_pos=queue[head][1]+dx[i]; y_pos=queue[head][2]+dy[i]; if(bin[x_pos][y_pos]==1&&x_pos>=0&&x_pos<n&&y_pos>=0&&y_pos<m){ tail++; queue[tail][1]=x_pos; queue[tail][2]=y_pos; bin[x_pos][y_pos]=0; } } }while(head<tail); } int main(){ cin>>n>>m; for(int i=0;i<n;++i){ for(int j=0;j<m;++j) bin[i][j]=1; } for(int i=0;i<n;++i){ cin>>s; int len=strlen(s); for(int j=0;j<len;++j){ if (s[j]=='0') bin[i][j]=0; } } for(int i=0;i<n;i++){ for(int j=0;j<m;++j){ if (bin[i][j]==1) bfs(i,j); } } cout<<num; return 0; } ```
by kk22syx @ 2024-03-10 18:01:57


|