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\n",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 }
深搜 搜索每一个水池