首页 > 试题广场 >

八数码

[编程题]八数码
  • 热度指数:32 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解
\hspace{15pt}八数码问题,就是在一个含有 1 \sim 8\texttt{x}3\times3 方格中,每次可以将 \texttt{x} 与其相邻位置的数字交换。使得最后变成:

\begin{pmatrix}<br />1 & 2 & 3 \\<br />4 & 5 & 6 \\<br />7 & 8 & x<br />\end{pmatrix}

\hspace{15pt}你要做的就是,对于给定的八数码初始状态,求出交换次数最少的八数码的解决方案。

输入描述:
\hspace{15pt}输入一个 3\times 3 的矩阵 A,元素仅包含 1\sim 8x


输出描述:
\hspace{15pt}输出一行一个整数表示矩阵 A 恢复为最终矩阵所需要的最小步数。
示例1

输入

2  3  4  
1  5  x  
7  6  8

输出

19
补充:如果无法将矩阵 A恢复为最终矩阵,那么输出-1
发表于 2025-12-24 20:20:28 回复(0)