拼图最优求解算法

pwl2014 2009-07-02 05:02:04
本来放java版,没得到答案。
给定一个3×3的拼图,求解恢复拼图所用最少步数和每步的走法,比如:
拼图原始状态(.代表空格):
1 2 3
4 5 6
7 8 .
现在的状态(输入)
1 2 3
4 8 5
7 6 .
等到答案:4, 走法:(2, 1) -> (1, 1) -> (1, 2) -> (2, 2),括号中为每次移动的方块坐标。
感觉跟求迷宫最短路径问题差不多但貌似很不一样,想了一段时间还是没思路把代码写出来,请教高手,最好有代码或者伪代码,给思路也成。
...全文
130 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
showjim 2009-07-03
  • 打赏
  • 举报
回复
一层一层解决:如果长度可变的话,除了完全匹配状态
123
???
???
每一层都有6种最佳状态
23?
1??
???

?12
??3
???

2?3
1??
???

1?2
??3
???

13?
?2?
???

?13
?2?
???
,每种遍历一次,记录最小次数,如果翻转90度(147)的组合也要算.与当层数据无关的数字移动时,采取贪心法,即损失最小或获利最大的走法.

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧