#include <stdio.h> #include <string.h> void f(int a[200][200],int m,int n){ //杀羊 a[m][n]=0; if(a[m+1][n]==1) f(a,m+1,n); if(a[m-1][n]==1) f(a,m-1,n); if(a[m][n+1]==1) f(a,m,n+1); if(a[m][n-1]==1) f(a,m,n-1); if(a[m+1][n+1]==1) f(a,m+1,n+1); if(a[m-1][n-1]==1) f(a,m-1,n-1); if(a[m+1][n-1]==1) f(a,m+1,n-1); if(a[m-1][n+1]==1) f(a,m-1,n+1); } int main() { int m,n; while(scanf("%d %d",&m,&n)!=EOF) { getchar(); //! if(n==0&&m==0){ break; } int a[200][200]; char x; int i,j; int cnt=0; for(i=0;i<m;i++) { for(j=0;j<n;j++) { scanf("%c",&x); a[i][j]=x-'0'; } getchar(); //! } for(i=0;i<m;i++) { for(j=0;j<n;j++) { if(a[i][j]==1) { f(a,i,j); cnt++; } } } printf("%d\n",cnt); } return 0; } |
Double click to view unformatted code.