counting sheep
#include<stdio.h> #include<string.h> #include<stdlib.h> int T,M,N; char map[110][110]; int xx[4]={1,0,0,-1}; int yy[4]={0,1,-1,0}; int fun(int x,int y) { if(x<0||x>=N||y<0||y>=M) return 0; return 1; } void DFS(int x,int y) { int i,x1,y1; map[x][y]='.'; for(i=0;i<4;i++) { x1=x+xx[i]; y1=y+yy[i]; if(map[x1][y1]=='#'&&fun(x1,y1)) DFS(x1,y1); } } int main( ) { scanf("%d",&T); while(T--) { int i,j,k,ans=0; scanf("%d%d",&N,&M); getchar(); for(i=0;i<N;i++) { for(j=0;j<M;j++) scanf("%c",&map[i][j]); getchar(); } for(i=0;i<N;i++) for(j=0;j<M;j++) if(map[i][j]=='#') { ans++; DFS(i,j); } printf("%d\n",ans); } return 0; }
posted on 2011-05-11 03:06 more think, more gains 阅读(151) 评论(0) 编辑 收藏 举报