摘要:
深度优先搜索算法(DFS)讲解 深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。它以深入探索图的分支为目标,直到到达指定的“深度”,无法继续前进为止,然后通过回溯探索其他分支。DFS是数据结构与算法中一个非常重要且基础的概念,对于理解复杂数据结构的搜索和遍历过程至关重要。 1. DFS定义及 阅读全文
摘要:
166. 数独 - AcWing题库 题意 数独 是一种传统益智游戏,你需要把一个 9×9 的数独补充完整,使得数独中每行、每列、每个 3×3 的九宫格内数字 1∼9 均恰好出现一次。 请编写一个程序填写数独。 思路 搜索+剪枝(优化搜索顺序、位运算) 优化搜索顺序:很明显,我们肯定是从当前能填合法 阅读全文
摘要:
深度优先搜索(DFS)是一种遍历或搜索树或图的算法,它从一个根节点开始,尽可能深地搜索每个分支,直到找到解为止。在搜索过程中,为了提高效率,减少不必要的搜索,通常会采用各种剪枝优化策略。下面详细介绍几种常用的DFS剪枝优化策略: 1. 优化搜索顺序 目的:通过调整搜索顺序,使得搜索尽快地接近目标或者 阅读全文
摘要:
1118. 分成互质组 - AcWing题库 题意 将给定数组a分割成若干个互质子集的最小子集数量。每个子集内的任意两个元素都互质。 疑惑 我根据AcWing 1118. 分成互质组 - AcWing题解的思路2写的代码如下,但是代码有错。 把第35行 g[--zushu].pop_back();注 阅读全文
摘要:
题解 1117. 单词接龙 - AcWing题库 题意: 给定个单词以及单个字符作为开头字母,求出以这个字母开头的最长的“单词接龙”的长度,每个单词最多使用两次 思路: ,根据由数据范围反推算法复杂度以及算法内容 - AcWing结合题意,很显然用d 阅读全文
摘要:
链接: vJudge 题意: 有一个4位数字的密码锁,一次操作你可以选择连续的若干位同时向上或向下旋转一位,现问你从一个状态变换到另一个状态的最少操作次数 思路: 化繁为简,首先可以想到把所有的 转换为 $0000 -> c_0c_1c_ 阅读全文