这道题目各种wa。首先是错了一个坐标,居然没测出来。然后是剪枝错误。搜索pen时就返回,可能还存在串pen*。 1 #include 2 #include 3 #include 4 5 #define MAXN 1005 6 7 typedef struct Trie { 8 in...
分类:
其他好文 时间:
2014-07-07 18:07:44
阅读次数:
210
学习要点: 1、分支限界法与回溯法 2、分支限界法的剪枝搜索策略 3、分支限界法的算法框架: (1)队列式(FIFO)分支限界法 (2)优先队列式分支限界法 4、应用范例: (1)单源最短路径问题 (2)装置问题 (3)布线问题 (4)0-1背包问题 ...
分类:
其他好文 时间:
2014-07-03 19:32:51
阅读次数:
173
题目:把1-n,连续的放到一个环里,使相邻的数字和为素数,输出所有结果。
分析:搜索+剪枝。如果裸搜,用dancing-links那种拆装的链表,应该差不多满足16的数据量。
这里利用一个性质进行剪枝:相邻的数字一定是奇偶性不同的数字。
(如果上述假设不成立,则存在相邻的奇数或偶数,那么他们的和一定是大于2的偶数,不是素数)
...
分类:
其他好文 时间:
2014-07-03 17:45:19
阅读次数:
204
给你一个迷宫一个起点和一个终点,问你能否走T步刚好到达终点,不能重复走,并且只有4个方向显然这是一个dfs,虽然N最大只有7,但是裸的dfs复杂度还是太高了,因此要进行一些剪枝1.如果T比图上所有的可走点还要大,肯定是不可行的。这个可以避免dfs整张图。2.奇偶剪枝,有性质当前点(x,y)到目标点(...
分类:
其他好文 时间:
2014-07-02 17:42:47
阅读次数:
195
感觉这种算法还是比较局限的吧,重复搜索是一个不好的地方,而且需要高效的估值函数来进行强剪枝,这点比较困难。
迭代搜索深度是一个比较炫酷的搜索方式,不过有点拿时间换空间的感觉。
首先迭代深度比较搓的写法是,首先设置一个阀值MaxH,初始为最小值。
当在搜索深度Depth
另外一种比较吊的写法是二分搜索深度,若搜到则减小阀值,否则增大阀值。
总之,迭代深度搜索就是通过改变深搜的深度来寻找最...
分类:
其他好文 时间:
2014-07-02 09:01:04
阅读次数:
247
UVA 10318 - Security Panel dfs 剪枝
ACM
题目地址:UVA
10318 - Security Panel
题意:
这题跟点灯的题目很像,点灯游戏选择一盏灯时会让它以及四周的灯改变状态。
但是我们有特殊的开开关技巧,它给出了改变状态的位置,而不是四周都改变。
问你从全部关着变成全部开着的最小开关步骤。
分析:
很明显,在一...
分类:
其他好文 时间:
2014-06-30 17:33:24
阅读次数:
190
prunning,剪枝,顾名思义就是减掉那些不重要的。
从理论上来讲,剪枝达到的效果就是剪枝后的q和剪枝前的 p 最大化相似,有两种算法 entroy-based以及rank-based。
针对model,使用相对熵来刻画D(q||p) 来刻画,保证两个model的熵差别最小,就是entropy-based。如果使用rank(p|q)来描述,保证整个model的rank差别最小...
分类:
其他好文 时间:
2014-06-26 07:24:00
阅读次数:
208
简直难到没朋友。
双向bfs + 剪枝。
剪枝策略:
对于2--5位置上的数,只有当光标在对应位置时通过swap ,up,down来改变,那么当当前位置没有达到目标状态时,left和right无意义。
好了,只剪掉这里就过掉了。。。
还有比较炫酷的方法实现枚举720种排列。。。然后状压什么的。。。功力不够完全看不懂。。。。
#include
#include
#include
#...
分类:
其他好文 时间:
2014-06-25 20:11:00
阅读次数:
162
The partial sum problem
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述One day,Tom’s girlfriend give him an array A which contains N integers and asked him:Can you choose some integers from the N ...
分类:
其他好文 时间:
2014-06-22 18:00:48
阅读次数:
166
本题就是考剪枝法了。
应该说是比较高级的应用了。因为要使用heuristic(经验)剪枝法。要总结出这个经验规律来,不容易。我说这是高级的应用也因为网上太多解题报告都没有分析好这题,给出的程序也很慢,仅仅能过掉,由此看来很多人没有做好这道题。
这里我需要更正一下网上流行的说法:奇偶剪枝法。
其实本题使用奇偶剪枝法并不能太大提高速度,只能说仅仅让使用奇偶剪枝过掉。所以网上说本题使用奇偶剪枝的,其实并不能提高速度。
原因:
奇偶剪枝只能剪枝一次,不能在递归的时候剪枝,因为只要初始化位置符合奇偶性,那么之后的任...
分类:
其他好文 时间:
2014-06-21 21:09:32
阅读次数:
178