B - DFS/BFS POJ - 2386
题目链接
题目大意:
池塘是一组有水的相连的正方形,其中一个正方形被认为与它的八个邻居相邻。求水坑数量,水坑可以相连。
题解:典型的dfs,直接干。
代码
#include <cstdio>
#include <cstring>
int n,m,ans=0,vis[105][105]={0};
char a[105][105];
void dfs(int x,int y){
vis[x][y]=1;
for(int i=-1;i<=1;i++){
for(int j=-1;j<=1;j++){
int nx=x+i,ny=y+j;
if(nx>=0&&nx<n&&ny>=0&&ny<m&&vis[nx][ny]==0&&a[nx][ny]=='W'){
dfs(nx,ny);
}
}
}
}
int main(){
scanf("%d%d",&n,&m);
for(int i=0;i<n;i++){
scanf("%s",a[i]);
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++){
if(a[i][j]=='W'&&vis[i][j]==0){
dfs(i,j);
ans++;
}
}
printf("%d",ans);
return 0;
}