EEx.八数码难题

EEx.八数码难题

题目描述

在 \(3\times 3\) 的棋盘上,摆有八个棋子,每个棋子上标有 \(1\) 至 \(8\) 的某一数字。棋盘中留有一个空格,空格用 \(0\) 来表示。空格周围的棋子可以移到空格中。要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为 \(123804765\)),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变。

输入格式

输入初始状态,一行九个数字,空格用 \(0\) 表示。

输出格式

只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数。保证测试数据中无特殊无法到达目标状态数据。

样例输入 #1

283104765

样例输出 #1

4

样例输入 #2

874210356

样例输出 #2

25

提示

样例解释

图中标有 \(0\) 的是空格。绿色格子是空格所在位置,橙色格子是下一步可以移动到空格的位置。如图所示,用四步可以达到目标状态。

并且可以证明,不存在更优的策略。

Our update

时限改为 \(2\text{ms}\)。(这个机子太慢了)

警示后人

记得换 C 语言。(原因:C++编译可慢了)

信息

ID
1008
难度
4
分类
(无)
标签
(无)
递交数
106
已通过
2
通过率
2%
上传者

相关

在下列训练计划中:

新手必做