以作者的水平为准 基础算法:枚举——>倍增 差分(前缀和)——>二维 贪心 分治:归并排序(逆序对) 二分答案 二分查找 快速排序——>离散化 递归/递推 搜索:深搜(所有方案),宽搜(最优解) DFS优化:迭代 最优性剪枝/可行性剪枝/搜索顺序 记忆化搜索 折半搜索 A*/IDA* BFS优化:双 ...
分类:
其他好文 时间:
2019-09-26 23:47:06
阅读次数:
194
迭代加深搜索 自己看的时候第一遍更本就看不懂。。是非常水,但智商捉急也是没有办法的事情。 好在有几个同学已经是做过了这道题而且对迭代加深搜索的思路有了一定的了解,所以在某些不理解的地方询问了一下他们的见解, 真的是非常有帮助。或许自己想要想非常久才干想明确,还会非常痛苦,略微问一下别人的想法,点上一 ...
分类:
其他好文 时间:
2017-07-09 19:29:37
阅读次数:
133
解题思路: 1.简单分析我们可以发现,当n=9时,最多只需要剪切八次即可完成排序。并且全排列数量9!=362880不算很大,所以我们可以将当前排列作为状态,转化成十进制数存入set以便判重。然后逐渐增加解答树的深度(搜索最大深度)进行迭代加深搜索。 2.构造启发函数。本题可以定义一个后继错数:当前状
分类:
其他好文 时间:
2016-03-20 13:07:13
阅读次数:
273
本章聚集了一些做了的迭代启发式搜索的题目为什么只打了迭代启发式搜索?因为它很好打,有些类似迭代的时候加的最优化剪枝[因为这个最优化剪枝其实就是你算的估价函数了...]BZOJ 1085 骑士精神比较经典的一题,特别是题目中还说了在15步内走完...看上去就是迭代的样子估价函数->指棋盘上不符合规定的...
分类:
其他好文 时间:
2015-12-17 20:53:32
阅读次数:
223
题意:如图24个位置上有数字1~3,可以进行移动,每次对一条7个数进行平移,问怎样移动使得中心的8个方格为相同的数字,输出方案和最后中心的数字。
思路:IDA*,有八个操作,主要是这个移动操作不好弄,开一个辅助数组记录移动的位置关系。每移动一次中心改变一个数,以此构造h()。...
分类:
其他好文 时间:
2015-08-17 19:29:49
阅读次数:
146
迭代加深搜索(IDDFS)的思想
迭代加深搜索一般用来求解状态树“非常深”,甚至深度可能趋于无穷,但是“目标状态浅”的问题。如果用普通的DFS去求解,往往效率不够高。此时我们可以对DFS进行一些改进。最直观的一种办法是增加一个搜索的最大深度maxd,一般是从1开始。每次搜索都要在maxd深度之内进行,如果没有找到解,就继续增大maxd,直到成功找到解,然后break。
如下图所示,如果...
分类:
其他好文 时间:
2015-08-09 17:07:36
阅读次数:
172
IDA*算法, 从小到大枚举深度上限,不过该题是有深度上限的,题目中的第一个样例表明:最多需要5个皇后就可以覆盖整个棋盘 。
利用紫书上的技巧,我们可以快速的判断任意两个棋子是不是在同一行、同一列、同一对角线 (详情见紫书P193那两个图)。
这样之后暴力搜索就可以了 。 每一层需要O(nm)的复杂度,但是实际上并不需要那么大的复杂度 。和八皇后问题类似 , 当前行之前的行已经放置了皇后,...
分类:
其他好文 时间:
2015-08-05 08:57:48
阅读次数:
194
IDA*算法 OrzHZWER A*+迭代加深搜索=IDA* 这题的估价相当于一个可行性剪枝,即如果当前走的步数s+未归位的点数>搜索深度k,则剪枝 1 /************************************************************** 2 ...
分类:
其他好文 时间:
2015-02-17 12:50:10
阅读次数:
237
迭代加深搜索
自己看的时候diyibiangengbenjiukanbu...
分类:
其他好文 时间:
2014-07-31 03:02:05
阅读次数:
226