码迷,mamicode.com
首页 >  
搜索关键字:ida算法    ( 24个结果
UVA 11212 Editing a Book
题意: 有一篇由n个自然段组成的文章。希望将他们排成递增序列。只能剪贴和粘贴交替进行,剪贴时可以剪贴一段连续的自然段。分析: 用IDA*算法求解。当3*d+h>maxd时剪枝。代码: #include #include #include #include using namespace std...
分类:其他好文   时间:2015-10-11 18:03:42    阅读次数:113
Codevs1225 八数码难题
题目大意:在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。 思路:使用IDA*算法。估价函数为现在棋盘与目标棋盘的对应元素不同的个数。剪枝:若当前深度加上...
分类:其他好文   时间:2015-08-20 19:03:46    阅读次数:159
POJ - 2286 - The Rotation Game (IDA*)
IDA*算法,即迭代加深的A*算法,实际上就是迭代加深+DFS+估价函数题目传送:The Rotation GameAC代码:#include #include #include #include #include #include #include #include #inclu...
分类:其他好文   时间:2015-08-15 00:14:54    阅读次数:162
1343 - The Rotation Game (IDA*算法)
紫书上给的是状态空间搜索,其实本题也可以用IDA*算法,因为其符合IDA*的特点 : 求最小迭代次数 。 根据旋转的规律,我们可以用几个数组来储存向各个方向旋转时改变哪些量,用来维护旋转这个操作 。另外就是估价函数:当前出现在中间八个格子中次数最多的数字设为t ,那么剩下的迭代次数就是8 - t  , 如果它加上已经迭代的次数d > maxd ,则应当剪枝 。 另外想到了一个估算回溯法的时间复...
分类:编程语言   时间:2015-08-11 21:28:50    阅读次数:208
hdu-4127 Flood-it!(IDA*算法)
今天做的福州赛区区域赛的题目重现,一整场都在抠这道题仍然无法AC,时间卡的很紧,不过其实也是自己的搜索学的实在太差,紫书上刷的最少的就是第七章的题 。 我一开始就看出了这道题需要IDA*算法,但是昨天才看的还没能深入理解,通过赛后补这道题,感觉整体思路有了一个新的突破 。 IDA*算法就是迭代加深搜索和A*算法的结合,迭代加深搜索非常简单,就是从小到大枚举深度上限,适合求解深度未知的或者像该题...
分类:编程语言   时间:2015-08-08 09:11:28    阅读次数:117
2011 ACM/ICPC 福州赛区现场赛8.7
A题是哪个象棋的题: B题hdu4122: 好像是水过去的,看到题解要用队列,就是简单的枚举加判断条件过去的。 C题hdu4123: 用到MRQ算法查询区间内的最大最小值 G题hdu4127 是个填颜色的题: 是把所有点分成3部分,已经和00连通的,还有就是下一次需要填的颜色部分,剩下的部分就是填不了的, 用IDA算法,分开写几个小程序,填充颜色同一个颜色的程序,当前状况需要改变最...
分类:其他好文   时间:2015-08-07 22:23:45    阅读次数:271
11212 - Editing a Book(IDA*算法)
又一道迭代加深搜索,从小到大枚举上限 。   关键的剪枝部分是写出启发函数,这个比较难。。 不过每次剪切后,不正确的数字个数最多减三还是很好理解的,因为我们算不正确数字个数的方法是看当前数字+1是不是等于下一个数字 。 所以每次剪切最多只有3个数字的后继数字发生了改变。  那么 剪枝条件就显而易见了 。 代码如下: #include using namespace std; const in...
分类:编程语言   时间:2015-08-05 10:31:49    阅读次数:156
11214 - Guarding the Chessboard(暴力搜索)
IDA*算法, 从小到大枚举深度上限,不过该题是有深度上限的,题目中的第一个样例表明:最多需要5个皇后就可以覆盖整个棋盘 。  利用紫书上的技巧,我们可以快速的判断任意两个棋子是不是在同一行、同一列、同一对角线 (详情见紫书P193那两个图)。  这样之后暴力搜索就可以了 。 每一层需要O(nm)的复杂度,但是实际上并不需要那么大的复杂度 。和八皇后问题类似 , 当前行之前的行已经放置了皇后,...
分类:其他好文   时间:2015-08-05 08:57:48    阅读次数:194
12558 - Egyptian Fractions (HARD version)(IDA*算法)
IDA*算法,迭代加深搜索和A*算法的结合 。 迭代加深搜索适用于那些没有明显深度上限的题目,将深度从小到大枚举,直到找到最优解 ,减小了深搜的盲目性 。 A*算法需要一个乐观估价函数,在这个函数里寻找一个代价最小的点去搜索,所以时间复杂度都浪费在这个上面了 。 其实我照着紫书上巧的,感觉很容易,实际上其中的算法思想是要静下心来仔细研究的,练ACM这么久了,深深感到这个竞赛是那么的迷人,又是...
分类:编程语言   时间:2015-08-04 21:06:59    阅读次数:163
HDU ACM 2234 无题I->IDA*算法
分析:IDA*解决,借鉴大牛的启发式函数h(): 可以考虑把每一行上的数转化成相同的,或者把每一列上的数字转化成相同的,二者取最小值。 例如: 1 1 3 2 2 4 4 2        3 3 1 4 1 2 3 4 把这个矩阵转化成行合法矩阵需要的操作:第一行至少要2次,第二行也是2次, 第三行是2次,第四行是3次, 所以把矩阵转化成行相同至少要3次。 #include usi...
分类:编程语言   时间:2015-06-01 22:39:16    阅读次数:164
24条   上一页 1 2 3 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!