![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
搜索-IDA*
文章平均质量分 78
iHge2k
专注数据结构和算法
展开
-
hdu 2918(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2918 思路:这道题与前面几道类似,可以说是被秒杀了!!!构造启发式函数h()=(cnt+3)/4(cnt为不在位的点的个数)。 1 #include 2 #include 3 #include 4 #include 5 using namespace std;原创 2014-05-26 18:07:14 · 402 阅读 · 0 评论 -
hdu 1813(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1813 思路:首先bfs预处理出‘0’到边界点最短距离,然后构造 h() 为所’0‘点逃离迷宫的最少步数的最大值。 1 #include 2 #include 3 #include 4 #include 5 #include 6 using namespac原创 2014-05-26 18:07:12 · 397 阅读 · 0 评论 -
hdu 1560(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1560 思路:关键是启发式函数h()的构造,我们可以这样想:每次给主串增加一个字符和字符串的最后一位比较,如果相同,这个字符串的长度减一。构造h()为当前所有字符串中长度最长的。 1 #include 2 #include 3 #include 4 #include 5 u原创 2014-05-26 18:07:10 · 438 阅读 · 0 评论 -
hdu 1667(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1667 思路:大牛说是IDA*的入门题=.=构造h()=8-max(1,2,3); max(1,2,3)表示中间的八个位置中出现最多的数的个数。 因为每次操作只能改变中间8个中的一个,所以可以这样构造启发式函数。 1 #include 2 #include 3 #inclu原创 2014-05-26 18:07:06 · 347 阅读 · 0 评论 -
hdu 2234(IDA*)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2234 思路:IDA*可以搞,借鉴的是大牛的启发式函数h(): 可以考虑把每一行上的数转化成相同的,或者把每一列上的数字转化成相同的,二者取最小值。 1 1 3 2 2 4 4 2 3 3 1 4 1 2 3 4 如果把这个矩阵转化成行相同的话需要的操作:第一行 至少要2次,第原创 2014-05-26 18:07:08 · 538 阅读 · 0 评论