2019 GDUT 新生 专题Ⅰ B题

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;
} 
发布了32 篇原创文章 · 获赞 0 · 访问量 647

猜你喜欢

转载自blog.csdn.net/weixin_45794203/article/details/103964640