带你飞系列-二搜索进阶

原创 2015年11月17日 22:14:41

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计划

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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

[kuangbin带你飞]专题二-搜索进阶-A-Eight

ACM模版描述 题解传说中和八皇后一样过分经典的搜索问题,所以网上一查,各种强势题解一大堆,更有丧心病狂者,写了《八数码的八境界》这种深度剖析此问题的 blog,让我不敢再多言此题,毕竟我想不了那么...
  • f_zyj
  • f_zyj
  • 2017年04月04日 17:52
  • 215

[kuangbin带你飞]专题二 搜索进阶 I - A计划(HDU 2102)

题目链接I - A计划 思路: 还是正常的bfs,多了一层而已。在移动时,增加判断,如果下一步为时光传输机且对应的节点为空地,则加入队列,否则continue即可。 代码:#include #...

[kuangbin带你飞]专题二-搜索进阶-D-Escape

ACM模版描述 题解这种问题不难,无非两点,一:看懂题,二:细心。矩阵的搜索一般使用 bfs 比较多,也比较好,这里的标记要用一个三维数组,多出来的一维用来标记时间,记住要用 bool 型,习惯性的...
  • f_zyj
  • f_zyj
  • 2017年04月15日 18:59
  • 183

Android 进阶学习:Android视图状态及重绘流程分析,带你一步步深入了解View(三)

在前面一篇文章中,我带着大家一起从源码的层面上分析了视图的绘制流程,了解了视图绘制流程中onMeasure、onLayout、onDraw这三个最重要步骤的工作原理,那么今天我们将继续对View进行深...

Android 进阶学习:Android LayoutInflater原理分析,带你一步步深入了解View(一)

http://blog.csdn.net/guolin_blog/article/details/12921889 有段时间没写博客了,感觉都有些生疏了呢。最近繁忙的工作终于告一段落,又...

Android 进阶学习:事件分发机制完全解析,带你从源码的角度彻底理解(上)

http://blog.csdn.net/guolin_blog/article/details/9097463 其实我一直准备写一篇关于Android事件分发机制的文章,从我的第一篇博...

Android 进阶学习:Android视图状态及重绘流程分析,带你一步步深入了解View(三)

http://blog.csdn.net/guolin_blog/article/details/17045157 在前面一篇文章中,我带着大家一起从源码的层面上分析了视图的绘制流程,了...

Android 进阶学习:Android自定义View的实现方法,带你一步步深入了解View(四)

http://blog.csdn.net/guolin_blog/article/details/17357967 不知不觉中,带你一步步深入了解View系列的文章已经写到第四篇了,回顾一下...

windows程序员进阶系列:《软件调试》之二:cpu基础

windows程序员进阶系列:《软件调试》之二:cpu基础                        by ithzhang blog.csdn.net/ithzhang 转载请注明出处!!   ...

当我们说线程安全时,到底在说什么——Java进阶系列(二)

提到线程安全,可能大家的第一反应是要确保接口对共享变量的操作要具体原子性。实际上,在多线程编程中我们需要同时关注可见性、顺序性和原子性问题。本篇文章将从这三个问题出发,结合实例详解volatile如何...
  • Habren
  • Habren
  • 2016年06月13日 07:24
  • 945
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:带你飞系列-二搜索进阶
举报原因:
原因补充:

(最多只允许输入30个字)