《计算机算法设计与分析》(第3版) 王晓东 电子工业出版社递归与分治策略二分搜索算法二路归并排序快速排序动态规划矩阵连乘问题斐波那契数列贪心算法最优装载活动安排问题其它可用贪心算法求解的问题回溯法图的m着色问题素数环问题分支限界法装载问题
分类:
编程语言 时间:
2015-07-12 21:31:26
阅读次数:
183
回溯法有“通用的解题法”之称。用它可以系统地搜索一个问题的所有解或任一解。解空间树有子集树和排列树两种。具有剪枝函数的以深度优先方式系统搜索问题解的算法,它适用于解组合数较大的问题。一. 基本思想具有剪枝函数的以深度优先方式系统搜索问题解的算法称为回溯法。回溯法在问题的解空间树中,按深度优先策略,从...
分类:
其他好文 时间:
2015-07-11 12:00:41
阅读次数:
163
虽然DLX可以提高效率....但是对于NPC问题也不用太追求效率了,而且还只有一个测试点。所以 只要DFS不断的填入,直到空格全部被填满;要注意的是DFS中全局变量的更新和恢复。至于存储的方法,只要考虑每一行每一列每一个小块的不重复即可。#include #include using namespa...
分类:
编程语言 时间:
2015-07-07 00:53:28
阅读次数:
273
1、概念
回溯算法实际上一个类似枚举的搜索尝试过程,主要是在搜索尝试过程中寻找问题的解,当发现已不满足求解条件时,就“回溯”返回,尝试别的路径。回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法,而满足回溯条件的某个状态的点称为“回溯点”。 许多复杂的,规模较大的问题都可以使...
分类:
编程语言 时间:
2015-07-02 17:39:58
阅读次数:
173
八皇后问题 八皇后问题的数学模型:如何能够在 8×8 的国际象棋棋盘上放置八个皇后,使得任何一个皇后都无法直接吃掉其他的皇后?为了达到此目的,任两个皇后都不能处于同一条横行、纵行或斜线上。八皇后问题可以推广为更一般的n皇后摆放问题:这时棋盘的大小变为n×n,而皇后个数也变成n。 回溯法:解决8que...
分类:
其他好文 时间:
2015-07-01 17:55:57
阅读次数:
204
幂集:有一个集合A,集合A的幂集是由集合A的所有子集所组成的集合。集合中的每个元素只有两种状态:属于幂集的元素集或不属于幂集的元素集。
集合{1,2,3},用一棵二叉树来表示。
递归函数void GetPowerSet(int i,int length,int A[],int B[]){
int C[N];
memcpy(C, B, 10 * sizeof(int)); //复...
分类:
其他好文 时间:
2015-06-30 20:28:49
阅读次数:
124
题意:
某国家发行k种不同面值的邮票,并且规定每张信封上最多只能贴h张邮票。 公式n(h,k)表示用从k中面值的邮票中选择h张邮票,可以组成面额为连续的1,2,3,……n, n是能达到的最大面值之和。
快被坑死了,回溯法是可以的,但是利用动态规划的思想可以提高效率,tmp数组一开始定义成全局了,无限TLE,貌似因为出不了wa就超时了…………
代码:
#include
#incl...
分类:
其他好文 时间:
2015-06-25 19:38:24
阅读次数:
108
回溯法直接搞定,注意判断素数的时候为了提高效率,直接查到小于50的素数手工打表了。。。这个方法在校赛的时候也曾经用过,当时因为超时,直接找了前2000个素数打表。。。
注意:如果最坏情况下的枚举量很大,应该使用回溯法而不是生成-测试法。...
分类:
其他好文 时间:
2015-06-25 14:09:29
阅读次数:
132
编程之美的第一章的第15节,讲的是构造数独,一开始拿到这个问题的确没有思路, 不过看了书中的介绍之后, 发现原来这个的求解思路和N皇后问题是一致的, 但是不知道为啥,反正一开始确实没有想到这个回溯法,知道是用回溯法求解之后,问题就变得容易了很多。
这里我们不打算实现数独的构造,相反的,我们实现一个数独求解器,以后妈妈再也不用担心我的数独了。当然求解器的思路和构造数独的思路一样,都是回溯法搜索,这里...
分类:
编程语言 时间:
2015-06-25 12:22:01
阅读次数:
199