关闭

带你飞系列-二搜索进阶

标签: acm
67人阅读 评论(0) 收藏 举报
分类:

hdu 1043 - Eight

不做人生不完整系列,有讲解得非常好的文章 八数码的八种境界

hdu 3567 - Eight II

看上去是上一道题目的扩展,但实际上做法却与上面一道题不同。题目要求求出指定终态字典序最小的最优解,所以不能直接用A*。看到网上题解后,才知道这道题目要预先处理8种情况(X所在位置不同),记录下每种情况能产生的状态。最后直接输出就好。

hdu 2181 - 哈密顿绕行世界问题

这道题目可以直接DFS就能过。

hdu 3533 - Escape

这道题加上了许多限制条件呢。将其化简为普通的BFS就好做了。首先,可以停留在原位,所以转移状态数多了一个留在原地。而在判断是否能够走某一步的时候,同时要判断该店上下左右的炮台此刻会不会有子弹出现在这个位置。这样就是一个普通的BFS。

hdu 1560 - DNA sequence

IDA*练习题。首先想到的时候就是DFS。在深度搜索的时候转移状态必须要在未匹配的序列中出现过。而最优情况下需要未匹配序列中最长的一个的数量,因此可以以此为启发函数,加上IDDFS,以当前长度和最有长度为启发,如果深度小于之,退出搜索,就可以极大地优化程序。

ZOJ 2477

因为只搜5层,所以使用IDA*搜索。由于每次旋转,每面中心颜色总不变,也就确定了最终的状态,找出每个面中与中间颜色不同的个数的最大值,其中每次旋转会更改每个面的3个位置的颜色,所以就是(最大值+2)/3。
总共有12种旋转,找到其中的对应方式,使用转动数组就非常方便了,不过数组的初始化是相当蛋疼的工作,最好手头有个三阶魔方。顺时针与逆时针刚好对应。

HDU 2102 - A计划

这道题入门的时候就做过了,并不是很难,只要注意一下就好。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:247次
    • 积分:32
    • 等级:
    • 排名:千里之外
    • 原创:3篇
    • 转载:1篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档