HDOJ搜索专题之Counting Sheep

简单搜索题。

View Code
 1 #include <stdio.h>
 2 #define N 100
 3 int dx[4]={0,0,1,-1};
 4 int dy[4]={1,-1,0,0};
 5 char g[N][N],n,m,cnt;
 6 void dfs(int i,int j)
 7 {
 8   int ni,nj,d;
 9   for(d=0;d<4;d++)
10   {
11     ni=i+dx[d];
12     nj=j+dy[d];
13     if(ni<0 || nj<0 || ni>=n || nj>=m || g[ni][nj]!='#')  continue;
14     g[ni][nj]='.';
15     dfs(ni,nj);
16   }
17 }
18 int main()
19 {
20   int i,j,t;
21   scanf("%d",&t);
22   while(t--)
23   {
24     scanf("%d%d",&n,&m);
25     for(i=0;i<n;i++)
26     {
27       getchar();
28       for(j=0;j<m;j++)
29       {
30         scanf("%c",&g[i][j]);
31       }
32     }
33     cnt=0;
34     for(i=0;i<n;i++)
35     {
36       for(j=0;j<m;j++)
37       {
38         if(g[i][j]=='#')  g[i][j]='.',cnt++,dfs(i,j);
39       }
40     }
41     printf("%d\n",cnt);
42   }
43   return 0;
44 }

 

posted @ 2012-05-11 22:11  BeatLJ  阅读(201)  评论(0编辑  收藏  举报