本题解只记录思想。若读者觉得题解思路清晰且想看看代码,可私下联系。
整理:
目录:
未整理:
poj 2286 The Rotation Game(迭代深度优先搜索)
这道题目,搜索深度不确定,DFS会TLE,由于处理的状态是个一维数组,BFS会MLE(因为要把状态存进队列中)。所以考虑使用迭代深度优先搜索(IDdfs)。关于这个算法,别人有详细的介绍,这里就不讲了。这个乐观估计函数get_h()具体看中心数字出现最多的数目与迭代深度的关系,即返回
8
−
m
a
x
(
n
u
m
1
,
n
u
m
2
,
n
u
m
3
)
8-max(num1,num2,num3)
8−max(num1,num2,num3),当
g
e
t
_
h
(
)
+
d
e
e
p
>
l
i
m
i
t
get\_h()+deep>limit
get_h()+deep>limit时就不要继续往下搜索了。(还有我的代码完全跟正解一样,但就是wa了,惊了, 菜)