随笔分类 -  搜索

搜索题目
摘要:1.joj 2391 words 题意:给不超过12个word,找出最长的单词序列,其中,前一个单词的最后一个字母,等于后一个单词的第一个字母。 思路:刚开始,我以为水题,直接以每一个单词为起点进行DFS,搜索中记录最大值,结果TLE。必须剪枝了,想了老长时间,就是没想出怎么处理出现回路的问题,中午坐电脑前,忽然有了个思路。就是记录以每个word作为第一个word的长度,并且在搜索中由后向前搜,这... 阅读全文
posted @ 2010-07-28 12:32 yongmou- 阅读(938) 评论(0) 推荐(0) 编辑
joj 2558 Ocean Currents 特别的广搜
摘要:题意:  一个R*C的海面,1<= R、C<=1000,上面每个点都有八个方向之一的current,顺着流走一个单位cost 0,不顺着走一个单位cost 1。计算由一个初始位置到结束位置最小的cost.思路:  本来用A*,TLE,想想主要是因为A*考虑访问过的顶点,其实,这个题A*用的很憋屈,启发函数必须设成0。后来还是用了BFS,用两个队列,先把cost为0的全部入队列1,然后由... 阅读全文
posted @ 2010-07-23 06:53 yongmou- 阅读(257) 评论(0) 推荐(0) 编辑
2006-8-11 11:29:00 搜索算法及其在ACM竞赛中的应用(作者/刘力科 计算机系01级4班)
摘要:【关键词】深度优先搜索 ,广度优先搜索,估价函数,A*,IDA*【Keyword】deep first search(DFS),breadth first search(BFS),valuation function,A*,IDA*【摘要】搜索是ACM竞赛中的常见算法,本文的主要内容就是分析它的 特点,以及在实际问题中如何合理的选择搜索方法,提高效率。文章的第一部分首先分析了各种基本的搜索及其各自... 阅读全文
posted @ 2010-07-20 10:20 yongmou- 阅读(466) 评论(0) 推荐(0) 编辑
八数码 poj 1077 广搜 A* IDA*
摘要:经典的八数码问题,有人说不做此题人生不完整,哈哈。状态总数是9! = 362880 种,不算太多,可以满足广搜和A*对于空间的需求。状态可以每次都动态生成,也可以生成一次存储起来,我用的动态生成,《组合数学》书上有一种生成排列的方法叫做"序数法",我看了一会书,把由排列到序数,和由序数到排列的两个函数写了出来,就是代码中的int order(const char *s, int n) 和void ... 阅读全文
posted @ 2010-07-19 18:34 yongmou- 阅读(8606) 评论(12) 推荐(1) 编辑
搜索,A* IDA*
摘要:A*    一般地,节点n的评估函数f(n)可表示如下        f(n)=h(n)+d(n)  h(n)是启发式函数,与启发信息相关。启发函数h(n)的设计非常重要,它无固定的设计模式,主要取决于面向具体问题结构的知识和求解的技巧。d(n)是开始节点到节点n的深度信息。  A*算法最为核心的部分,就在评估函数的设计。在A*搜索算法的评估函数中,d(n)表示从起始节点到当前节点的代价,通常用当... 阅读全文
posted @ 2010-07-16 13:12 yongmou- 阅读(2650) 评论(0) 推荐(0) 编辑