1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53
| #include<bits/stdc++.h> using namespace std; int n,m,dx[4]={0,1,0,-1},dy[4]={-1,0,1,0},a[100][100]; int sum,q[10000][4],h,t; void fun(int x,int y) { h=1,t=1; q[h][1]=x; q[h][2]=y; while(h<=t) { for(int i=0;i<4;i++) { int xx=q[h][1]+dx[i]; int yy=q[h][2]+dy[i]; if(a[xx][yy]!=0&&xx>=1&&xx<=n&&yy>=1&&yy<=m) { t++; q[t][1]=xx; q[t][2]=yy; a[xx][yy]=0; } } h++; } } signed main() { cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { scanf("%1d",&a[i][j]); } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(a[i][j]!=0) { fun(i,j); sum++; } } } cout<<sum; return 0; }
|