题意:
某公司负责探测地下油层,每次处理一个大的矩形区域。先创建一个网格,将土地划分为许多方形块,然后用传感设备分别探测每个地块,以确定该地块是否含有石油。一块含有石油的土地叫做pocket。如果两个pocket边相邻或对角相邻,则它们属于同一油层的一部分。你的工作是确定在一个网格有多少不同的油层。
输出:
输入包含多组数据。每组数据都以包含m和n的一行开始,m和n是网格中行和列的数量(1 <= m <= 100,1 <= n <= 100),由一个空格分隔。如果m = 0,则表示输入结束。下面是m行,每行有n个字符(不包括行尾字符)。每个字符对应一块土地,要么是“*”,代表没有油,要么是“@”,代表一个pocket。
1.dfs函数内部和主函数内部和dfs蘑菇题解相似,在此不多解释
代码如下:
2.在solve函数中有一点区别:此题在这个函数内部检查是否为起点,并且检查当前位置是否被访问并且使用dfs(i,j)来从当前位置开始搜索所有可能的路径。并在每一次搜索后sum++来增加路径计数器。
代码如下:
完整代码如下: