回溯和递归
文章平均质量分 76
longchanglin0609
这个作者很懒,什么都没留下…
展开
-
回溯法基本知识
一、回溯法的描述 从问题的某一种初始状态出发,依次搜寻每一种可能到达的情况,当走到这条路的“尽头”时,回过头到上一个情况,看这个情况是否还有没有走过的路,依次进行下去,直到遍历完所有的情况。 回溯法实际上是一种深度优先搜索的方式。 二、算法框架 对于回溯法解决的问题,通常将其解空间组织成图或者树的形式。 例如,对于0-1背包问题。(通常的背包问题有两原创 2012-07-17 23:20:23 · 758 阅读 · 0 评论 -
八皇后及N皇后的解法
首先看看八皇后问题: 在8X8的国际象棋棋盘上放置8个皇后,使这8个皇后中任意两个不在同一行、同一列、同一斜线上。试求出可能的解法以及总的解法个数。 分析: (1)此问题的解必然是一个长度为8的向量,即在64个格子中选取8个,即C 8(上)64(下) = 4.426*10^9种方案,但此思路消耗太大 (2)如果我们这样想,设定一个数列loca[8],其中lo原创 2012-07-18 16:05:27 · 1451 阅读 · 0 评论 -
POJ 1321 棋盘问题
传送门:http://poj.org/problem?id=1321 分析: 此题与8皇后问题类似,关键如下: 第一、并不是每一个格子都可以放棋子 第二、并不是对应n行n列的棋盘一定要放n个棋子 第三、约束条件较八皇后问题少了必须不能再同一斜线上 综上,此题在八皇后问题的基础上需要修改的重要点有: 第一、在backtrace函数中原创 2012-07-18 17:17:51 · 355 阅读 · 0 评论 -
POJ 2488 A Knight's Journey
传送门:http://poj.org/problem?id=2488 题目大意:在一个M X N的矩阵中,骑士需要从其中任意点出发,遍历所有点。 骑士的走路规则:沿某一个方向A走两步,再沿这个方向的垂直方向B走一步。(A方向的两步不算,即一次到达最后点) 图示:假设骑士在中间位置,则带有白色圆圈的8个点表示可以一次到达的位置。 此题似乎只要找到一个原创 2012-07-18 20:55:43 · 725 阅读 · 0 评论