码迷,mamicode.com
首页 >  
搜索关键字:迭代加深搜索    ( 86个结果
UVA 11212 Editing a Book [迭代加深搜索IDA*]
解题思路: 1.简单分析我们可以发现,当n=9时,最多只需要剪切八次即可完成排序。并且全排列数量9!=362880不算很大,所以我们可以将当前排列作为状态,转化成十进制数存入set以便判重。然后逐渐增加解答树的深度(搜索最大深度)进行迭代加深搜索。 2.构造启发函数。本题可以定义一个后继错数:当前状
分类:其他好文   时间:2016-03-20 13:07:13    阅读次数:273
UVA-11214 Guarding the Chessboard (迭代加深搜索)
题目大意:在一个国际象棋盘上放置皇后,使得目标全部被占领,求最少的皇后个数。题目分析:迭代加深搜索,否则超时。小技巧:用vis[0][r]、vis[1][c]、vis[2][r+c]、vis[c-r+N]分别标志(r,c)位置相对应的行、列、主、副对角线有没有被占领(详见《入门经典(第2版)》P19...
分类:其他好文   时间:2015-09-20 23:50:39    阅读次数:166
UVA-12558 Egyptian Fractions (HARD version) (IDA* 或 迭代加深搜索)
题目大意:经典的埃及分数问题。代码如下:# include# include# include# includeusing namespace std;# define LL long longint num[5],a,b,k;LL ans[10000],v[10000];LL gcd(LL a,L...
分类:其他好文   时间:2015-09-20 22:00:14    阅读次数:161
【日常学习】【迭代加深搜索+哈希】codevs1004 四子连棋题解
迭代加深搜索的实现以及哈希表在ID中应用应当注意的问题...
分类:其他好文   时间:2015-08-25 16:45:26    阅读次数:935
Codevs1225 八数码难题
题目大意:在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 思路:使用IDA*算法。估价函数为现在棋盘与目标棋盘的对应元素不同的个数。剪枝:若当前深度加上...
分类:其他好文   时间:2015-08-20 19:03:46    阅读次数:159
【日常学习】【IDA*】codevs2449 骑士精神题解
题目描述 Description      在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位。在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标相差为2,纵坐标相差为1的格子)移动到空位上。         给定一个初始的棋盘,怎样才能经过移动变成如下目标棋盘:                           为了体...
分类:其他好文   时间:2015-08-18 19:22:04    阅读次数:257
1374 - Power Calculus (迭代加深+剪枝)
题目要求乘除法的最少次数,其实就是一个数组中一开始只有一个数:1 ,每次可以从数组中取两个数(可以取同一个数)相加生成一个新数加如数组 。 那么显然这是一个迭代加深搜索,从小到大枚举深度上限 。 为了降低时间复杂度,我们要尽量的减少迭代次数,所以我们优先做加法,并且优先将最大的两个数相加,这样可以最快的接近目标 。 当然,有一个很显然的剪枝: 当每次取最大的两个数相加仍然小于n时要剪枝 。因...
分类:其他好文   时间:2015-08-10 22:23:41    阅读次数:117
vijos1308 埃及分数(迭代加深搜索)
题目链接:点击打开链接 题目描述: 在古埃及,人们使用单位分数的和(形如1/a的, a是自然数)表示一切有理数。如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。对于一个分数a/b,表示方法有很多种,但是哪种最好呢?首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。 如:19/45=1/3 + 1/12 + 1/180 ...
分类:其他好文   时间:2015-08-10 22:09:13    阅读次数:182
“埃及分数”问题浅谈对迭代加深搜索的理解
迭代加深搜索(IDDFS)的思想 迭代加深搜索一般用来求解状态树“非常深”,甚至深度可能趋于无穷,但是“目标状态浅”的问题。如果用普通的DFS去求解,往往效率不够高。此时我们可以对DFS进行一些改进。最直观的一种办法是增加一个搜索的最大深度maxd,一般是从1开始。每次搜索都要在maxd深度之内进行,如果没有找到解,就继续增大maxd,直到成功找到解,然后break。 如下图所示,如果...
分类:其他好文   时间:2015-08-09 17:07:36    阅读次数:172
hdu-4127 Flood-it!(IDA*算法)
今天做的福州赛区区域赛的题目重现,一整场都在抠这道题仍然无法AC,时间卡的很紧,不过其实也是自己的搜索学的实在太差,紫书上刷的最少的就是第七章的题 。 我一开始就看出了这道题需要IDA*算法,但是昨天才看的还没能深入理解,通过赛后补这道题,感觉整体思路有了一个新的突破 。 IDA*算法就是迭代加深搜索和A*算法的结合,迭代加深搜索非常简单,就是从小到大枚举深度上限,适合求解深度未知的或者像该题...
分类:编程语言   时间:2015-08-08 09:11:28    阅读次数:117
86条   上一页 1 ... 4 5 6 7 8 9 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!