首页/新闻资讯/正文详情

DFS递归复习总结

发布时间:2026/9/27 4:13:52 来源:云帆数科 栏目:资讯中心
DFS递归复习总结
递归DFS上午一、连续子段切分问题二、自然数拆分三、放苹果四、复原IP地址五、回文质数六、吃奶酪下午一、DFS 难点该不该回溯二、Lake Counting 数池塘三、迷宫四、填涂颜色五、Cow Travelling S六、回家七、棋盘上午一、连续子段切分问题给定一条长度为n nn的连续序列数组或字符串在序列内部选择若干个切分点将其划分为若干个不重叠、非空的连续区间。二、自然数拆分问题将n nn拆分成若干个小于n nn的自然数之和按字典序输出所有方案。思路为保证不重复且按字典序输出拆分出的数字必须非递减即后一个加数不能小于前一个加数。参数需要维护三个变量——剩余待拆分的数值、上一个拆分出的数字保证非递减、当前正在算第几个加数。边界当剩余数值为0 00时说明拆分完毕此时要排除掉只有一个加数的情况即n nn等于自身这种不合法拆分只有加数个数大于等于2 22时才输出。枚举范围从上一个加数开始枚举到剩余数值这样既保证了非递减排列又保证当前数不会超过剩余总和。评价我以前真的不会。三、放苹果问题M MM个相同苹果放入N NN个相同盘子允许空盘求方案数。参数以当前待放入的苹果数量和当前可用盘子数量作为状态。边界苹果数为0 00或盘子数为1 11时只有1 11种放法苹果数为负或盘子数小于等于0 00时属于非法状态返回0 00。分类讨论当盘子数多于苹果数时必然有若干盘子空着此时等价于把苹果放到与苹果数量相同的盘子里当苹果数不少于盘子数时分为两种互斥情况至少有一个盘子空着或者每个盘子都至少放一个苹果。后者可以理解为先在每个盘子各放一个保底剩余的苹果再任意分配。评价递归的参数有点容易写错。四、复原IP地址问题将数字字符串切分为4 44段每段数值在0 00到255 255255之间不能有前导0 00按字典序输出所有可能结果。参数需要维护当前切分的起始位置和已经切分完成的段数。递归边界已经切出4 44段且字符串刚好用完说明找到一个有效划分保存结果已经切出4 44段但字符串还有剩余直接滚。剪枝根据剩余字符数和剩余段数判断是否可能完成。剩余字符太少无法组成足够的段剩余字符太多超出每段长度上限两种情况都直接滚蛋。评价其实可以枚举当前的数字长度来DFS。五、回文质数问题求给定区间内所有既是质数又是回文数的整数按从小到大顺序输出。思路构造回文数非常稀疏不逐个数去检验它是不是回文数而是用搜索直接构造出回文数。回文数具有回文性由前一半数位决定偶数位全灭定律任何一个具有偶数位长度的回文数其奇数位数字之和一定等于偶数位数字之和能被 11 整除是合数。唯一的偶数位回文质数只有 11 本身只需构造奇数位除特判 11 外只需构造总长度为奇数位的回文数。提示不能直接在构造前特判11因为前面还有个2、5、7。评价感觉不是很难主要就是想到要先构造回文数再判断质数还有这个坑。六、吃奶酪问题n 块奶酪分散在二维平面上老鼠从原点出发要吃掉所有奶酪求最少需要跑多远。解法状态定义用二进制数表示奶酪被吃掉的集合状态用当前最后到达的奶酪编号作为位置信息记录达到该状态的最短距离状态转移枚举下一个要去但还未去的点尝试移动到该点最小距离等于所有尝试中当前距离加上后续最小距离的最小值评价一道不难的状压主要是得想到要用当前最后到达的奶酪编号作为位置信息。下午一、DFS 难点该不该回溯DFS 的主要难点不在于递归本身而在于是否需要编写回溯。该回溯时漏写会出错不该回溯时滥写同样会出错。维度染色连通块路径方案搜索 / 轨迹回溯目标统计连通块个数、面积、岛屿边界统计路径条数、输出最短路径轨迹、求解特定步数解标记标记后永不还原进递归打标递归返回后必须清空空间单个节点全过程只被访问一次单个节点在不同走法/分支中可被复用复杂度每个格子常数次进出最坏指数级必须依赖强剪枝坑统计岛屿面积时写了恢复现场直接爆搜超时找迷宫所有路径时没清标记导致漏解二、Lake Counting 数池塘问题给定N × M N×MN×M网格格子为W或.。八连通的水格属于同一池塘求独立池塘总数。解题思路统计连通块总数不需要枚举路径因此每个水格只需被访问一次。遍历全图发现未访问的W则池塘计数加一从该格启动DFS向八个方向扩散途中遇到的所有连通W直接消去原地改为.搜索返回时不撤销修改保证每格只进出一次。评价不要双重for枚举点如果前面没有W就。三、迷宫问题N × M N×MN×M方格迷宫给定起点、终点和T TT个障碍物每次只能上下左右移动一格同一条路径不能重复经过同一格子求不同可行路径总数。解题思路路径方案搜索要求枚举所有走法同一个格子虽然在一条路径中不能复用但在不同路径中可以被再次经过。因此必须回溯递归进入下一层前标记访问该子树搜索完毕返回后恢复标记。评价那这很板了。四、填涂颜色问题n × n n×nn×n矩阵1 11代表闭合圈围墙0 00代表空地闭合圈内不含其他圈。将所有被1 11完全闭合包围的0 00填涂为2 22未被包围的0 00保持不变。解题思路正难则反不好去模拟于是我们可以先把外面的0 00变掉剩下的0 00就是里面的0 00坑点不能只从左上角开始万一左上角是1 11你不炸了。评价主要是要想到zl则反。五、Cow Travelling S问题N × M N×MN×M网格部分格子有障碍奶牛从起点出发必须在恰好第T TT秒到达终点每秒只能向相邻空地移动一步同一个格子可以重复经过求恰好T TT秒到达终点的总路线方案数。解题思路节点可重复走无需v i s visvis数组直接以步数等于T TT终止状态树分支为4 T 4^T4T次方暴搜超时剪枝一可行性剪枝当前点到终点的理论最短距离。如果剩余可用步数小于该距离不可能按时到达立即滚剪枝二奇偶剪枝如果剩下的步数与终点的距离不同那么一定不可能按时到达滚掉。评价得想到减枝其中剪枝二要难想一点其实都不难想。六、回家问题n × m n×mn×m地图2 22为起点3 33为家0 00为障碍1 11为空地4 44为有鼠标的空地。初始生命值为6 66每走一步生命值减一归零立即死亡吃到鼠标时生命值立即回满至6 66。求到达终点所需最少步数无法到达输出− 1 -1−1。解题思路坑点普通布尔数组 vis[x][y] 会导致漏解得加一个走到这里是还有多少生命评价就是稍微难模拟一点也不难。七、棋盘问题没时间了直接上图片解题思路坑点不能重复施法当法师大王。评价注意标记建议分块调试思路不难。

相关推荐

避坑指南:自己做装修效果的网站,3步搞定不拖工期
避坑指南:自己做装修效果的网站,3步搞定不拖工期

避坑指南:自己做装修效果的网站,3步搞定不拖工期 改个按钮颜色,建站公司说要排期,一拖就是五天。 这种“改需求拖一周”的坑,你肯定踩过。 别再等了,这份避坑指南教你自己做装修效果的网站。 运营目标与指标:先想清楚再动手… · 2026/9/27 4:13:45

如何查询网站服务器地址选对服务商哪家好才不踩坑
如何查询网站服务器地址选对服务商哪家好才不踩坑

如何查询网站服务器地址选对服务商哪家好才不踩坑 网站做好了没人访问,是不是因为服务器被屏蔽了?很多河南的老哥建站后流量上不去,第一反应是SEO没做好,其实很多时候是服务器地址选错了或者配置没查对。这时候问一句“建站服务商哪家好”,不是比谁价… · 2026/9/27 4:13:33

STM32嵌入式C++实战:从链接脚本到RAII的硬核落地
STM32嵌入式C++实战:从链接脚本到RAII的硬核落地

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 4:13:27

告别滑步与约束失准:Kimodo C++后处理MotionCorrection优化算法完整揭秘
告别滑步与约束失准:Kimodo C++后处理MotionCorrection优化算法完整揭秘

告别滑步与约束失准:Kimodo C后处理MotionCorrection优化算法完整揭秘 【免费下载链接】kimodo Official implementation of Kimodo, a kinematic motion diffusion model for high-quality human(oid) motion generation. 项目地址: https://gitcode.com/gh_mirr… · 2026/9/27 5:05:23

高通QNN实战:在Android手机上部署LLaMA-7B全攻略
高通QNN实战:在Android手机上部署LLaMA-7B全攻略

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:05:17

Python基于录屏的LOLM关键数据与优劣势转折点自动分析
Python基于录屏的LOLM关键数据与优劣势转折点自动分析

基于录屏的LOLM关键数据与优劣势转折点自动分析系统架构整个系统的处理管线可以概括为:录屏视频 → 帧提取 → 屏幕区域裁剪 → OCR/目标检测识别 → 数据序列化 → 转折点检测 → 报告输出核心思路是:在每一帧(或按固定间隔抽帧)… · 2026/9/27 5:05:17

PwDump7实战:Windows本地凭据提取原理、操作与踩坑指南
PwDump7实战:Windows本地凭据提取原理、操作与踩坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/27 5:05:17

懂行老手揭秘:wordpress网站导航菜单插件怎么配才能不花冤枉钱
懂行老手揭秘:wordpress网站导航菜单插件怎么配才能不花冤枉钱

懂行老手揭秘:wordpress网站导航菜单插件怎么配才能不花冤枉钱 网站做好了没人访问,这是很多老板最头疼的事。别急着怪SEO没做好,很多时候问题出在“门”没开对。你花大价钱找人做 建站报价… · 2026/9/27 5:05:10

服务器做网站用什么系统?一文搞懂Linux与Windows的实战选型
服务器做网站用什么系统?一文搞懂Linux与Windows的实战选型

服务器做网站用什么系统?一文搞懂Linux与Windows的实战选型 刚拿到服务器,看着黑漆漆的终端或者复杂的后台界面,是不是瞬间懵了?备案流程一头雾水,系统更是让人头疼,到底选Linux还是Windows?别急,这行混了10年,见过太多新… · 2026/9/27 5:05:04

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码