搜索
acmer_zp
这个作者很懒,什么都没留下…
展开
-
双广搜
题目链接 题目大意:给你4个棋子的坐标,给你最终状态的4个坐标,每个棋子可以走4个方向,入过下一步是空格则可以走,想一步是棋子则走到对应的下一个位置(要是空格才可以,是棋子就不可以),问在8步之内能否走到; 思路:开8维char数组记录4个棋子的坐标,int会MLE;同时从两个方向搜索,如果在8步内某个状态搜到了相反状态则找到答案,否则没有答案;sort是用来简化状态的比如1 1 2 2 3 3原创 2017-01-16 11:49:58 · 450 阅读 · 0 评论 -
迭代深搜+A*(IDA*)
HDU 2234 无题I 题目意思中文的也就不用翻译了; 广搜由于要记录大量的状态因此耗费的空间比较大,深搜由于要遍历所有的状态,所以耗费的时间就比较高; A*算法就相当于普通的搜索算法加了一个很厉害的剪枝,让结果尽量最优的先搜具体的请百度,这是一个神奇的东西,非常强大; 迭代深搜就是广搜加深搜,用深搜的空间和广搜的时间来解决问题; 每次固定深搜的层数,就相当于广搜到了第几层,用深搜遍历,原创 2017-01-15 15:37:05 · 643 阅读 · 0 评论 -
bfs+预处理+路径回溯+字典序最小+hash
HDU 1043 Eight HDU 3567-Eight II HDU 1430 魔板 这两道题很像,在这里我们看第二道,第一道比第二道简单好多; 题目意思是给你起始和终止状态让你输出路径要求字典序最小; X代表空的位置每次X都可以和相应的上下左右互换位置,让求最终换到终止状态的路径字典序最小; 每一次都求一遍肯定会超时,因为每一种起始状态可以对应18W多的终止状态,200次; 在这原创 2017-01-15 15:16:58 · 805 阅读 · 0 评论