搜索入门题单

从递归枚举、回溯剪枝到 DFS、BFS 和网格搜索,建立搜索建模与状态去重的基础。

0 / 0 已完成

搜索入门题单

搜索题的重点不是把递归写出来,而是明确三件事:状态是什么、下一步有哪些选择、什么时候可以剪枝或判重。

建议每道题都先写出最直接的搜索,再记录搜索树的规模和重复状态,最后说明优化消除了哪一部分重复。

一、递归与枚举

先练习把“选择一个对象”翻译成递归层,把“不能重复或必须满足条件”写成约束。

二、网格 DFS 与连通块

网格题是图搜索最直观的入口。先把四联通、八联通和边界条件写清楚,再考虑是否需要标记数组。

三、BFS 与最短步数

当每次移动代价相同时,BFS 的层数就是最短距离。要特别注意起点入队时机和第一次到达状态的含义。

四、搜索建模与剪枝

这一组开始出现状态压缩、传送、带代价移动和搜索顺序。不要一开始就套模板,先画出状态图。

复盘要求

每道题完成后补充:

text
状态由什么组成:
每次搜索有哪些选择:
是否存在重复状态:
剪枝条件为什么正确: