nyoj-27-水池数目

 1 #include<stdio.h>
 2 #include<string.h>
 3 #include<algorithm>
 4 #include<math.h>
 5 using namespace std;
 6 int map[105][105];
 7 int main()
 8 {
 9     void dfs(int i,int j);
10     int t,m,n,i,j;
11     scanf("%d",&t);
12     while(t--)
13     {
14         scanf("%d%d",&n,&m);
15         memset(map,0,sizeof(map));
16         for(i=1;i<=n;i++)
17             for(j=1;j<=m;j++)
18             scanf("%d",&map[i][j]);
19         int sum=0;
20         for(i=1;i<=n;i++)
21             for(j=1;j<=m;j++)
22             {
23                 if(map[i][j])
24                 {
25                     sum++;
26                     dfs(i,j);
27                 }
28             }
29         printf("%d
",sum);
30     }
31     return 0;
32 }
33 void dfs(int i,int j)
34 {
35     if(map[i][j])
36     {
37         map[i][j]=0;
38         dfs(i+1,j);
39         dfs(i-1,j);
40         dfs(i,j+1);
41         dfs(i,j-1);
42     }
43 }

深搜 搜索每一个水池

原文地址:https://www.cnblogs.com/nylg-haozi/p/3196106.html