Lake Counting(dfs 深搜/ bfs广搜)

这篇博客介绍了如何在一块土地上寻找八连通的积水区域,即水洼。给定N×M的地图,任务是找出所有连通的水洼数量。博主分享了对题意的理解,强调了八连通的概念,并提供了深搜(DFS)和广搜(BFS)两种搜索策略。博主建议将连续的‘W’视为一个整体,并通过遍历寻找完全被‘.’包围的‘W’集群。此外,还提醒了在处理输入时可能会遇到的陷阱,如使用scanf()时需要处理回车符。
摘要由CSDN通过智能技术生成

描述

有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?

格式

输入格式

第一行为N,M(1≤N,M≤110)。 下面为N*M的土地示意图。

输出格式

一行,共有的水洼数。

样例

输入样例

10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.

输出样例

3

限制

时间限制: 1000 ms

内存限制: 65536 KB

一开始看题目时,怎么都看不懂这题意,感觉这字里行间是不是少了点什么描述?比如说“八连通的积水被认为是连接在一起的”这一句是不是结尾处还有话没说完。于是我就搜了下该题目,没有少字,就是这样的表述。题目的意思是找极大连通图,你把题目给的样例看成一张图,图中是不是三处有积水互相不连通,而这三处积水块内是连通的,如果‘W’的上、下、左、右、左上、右上、左下、右下都是‘.’的话,该处就是一处水洼,但这三处积水是有很多‘W’组成的,每个‘W’的上、下、左、右、左上、右上、左下、右下八个位置都不全是‘.’,这怎么找水洼?我的理解是:因为这些‘W’是联通的,所以可以将它们看作一个整体,对于这个整体,如果小规模的积水‘W’是水洼,那么这个整体也可以看做一个水洼。所以进行查找时,遇到第一个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值