前言:
* 本帖是讲解DFSDFSDFS的,阅读前需要会编写A+B problem(被删了,所以你得有会编写A+B)的编程石粒,以语文分数不低于0分的石粒
* 为了维持ACGO的风度,所以大部分代码为伪代码,防止有神秘人直接复制粘贴。
* 代码有很多我打比赛保留的一些习惯,可跳过,因为本来就没用
* 废话不多说直接结束开始
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
正片
* 1.了解DFSDFSDFS:
* DFS(Depth−FirstSearch)DFS(Depth-First Search)DFS(Depth−FirstSearch),英译:深度优先搜索
* 同事:BFSBFSBFS等
* 核心用处:用于走迷宫,全排列(枚举)、遍历图/树等
* 中心思想:“不撞南墙不回头”,沿着一条路一直走下去,直到无路可走,然后回溯到上一个可以走的地方,重复此操作。
* 拿迷宫举例(本图选自A7991的样例1)(有点糊,请见谅)
* 想必你已经看懂了吧,由此可见DFSDFSDFS的中心思想,比对一下,DFS可以走迷宫,但BFS更适合走迷宫
* 2.尝试实现DFSDFSDFS:
* 既然DFSDFSDFS是从一个点一直向外走,走到头再回溯,由此可见,DFSDFSDFS可以用递归实现,哪里可见了?
* 那么我们来尝试一下下吧:
* 这是一个通用的伪代码,可以用于很多题目,但是如何正确使用呢,请继续往后看
* 3.完善DFSDFSDFS:
* 因为上面的代码是通用的,那么我们要写出一些适用于特别题目的代码:
* (1).迷宫:
* (2). 枚举所有排列:
* 完善了代码,那么我们上实战
* 4.实战:
* T1:A7991.迷宫(没错他又来了)
* (1). 分析题目:
* 给定起点、终点、地图,让你求是否可以从起点走到终点。这是一道典型的迷宫,可以使用3.(1)迷宫中的模版代码来写:
* (2). 代码思路:
* 按照题目输入后,从起点调用一次DFSDFSDFS得到结果。
* (3). 代码实现:
* T2:A149.数水坑
* (1). 分析题目:
* 这个题目的本质是连通块,这个没有讲过,让我们一起看看。
* 给你 nnn, mmm 以及地图,求有多少个水坑,水坑的定义为一个有水的地方的8个方向里有水的话把它们看做一个水坑(当然,如果又多个/1个连着1个,1个连着1个 都算做一个)
* (2). 代码思路:
* 查找到每一个没有访问过的水,开始深搜,遍历所有与他相连的水,这就是一个水坑,让计数变量自增
* (3). 代码实现:
* T3:A139.组合的输出
* (1). 分析题目:
* 给定 可用数字范围,可用数字,让你求所有全排列。这是一道典型的全排列,可以使用3.(2)全排列中的模版代码来写会PE,也可以将stringstringstring 替换为 vectorvectorvector
* (2). 代码思路:
* 直接暴力枚举,利用DFSDFSDFS的特性进行全排列
* (3). 代码实现:
* 注意,这题有坑,注意空格在数字前面,否则会PE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
3.结尾:
* 目前因时间关系,仅写了一些题目,后面会陆续写一些,同时欢迎投稿题目,如果我写的来我就写,并且会标注投稿人的名字;你也可以补充、纠正,我看到了会改,没看的话你就疯狂**@我**把
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
希望加精
🎉完结撒花🎉