搜索入门题。。。
#include<iostream> #include<string.h> #include<string> using namespace std; int map[105][105]; void dfs(int x,int y) { if(!map[x][y]) return; map[x][y]=0; dfs(x-1,y);dfs(x+1,y);dfs(x,y-1);dfs(x,y+1); } int main() { int T; cin>>T; while(T--) { int n,m; cin>>n>>m; memset(map,0,sizeof(map)); for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) cin>>map[i][j]; int num=0; for(int i=1;i<=n;++i) for(int j=1;j<=m;++j) if(map[i][j])//搜索为水池的地方 { num++; dfs(i,j); } cout<<num<<endl; }return 0; }