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 }

 

你可能感兴趣的:(count)