【八数码问题】//https://vijos.org/p/1360
在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字。棋盘中留有一个空格,空格用0来表示。空格周围的棋子可以移到空格中。...【分析】
题目读完第一感觉是和求解最短路径问题类似,考虑使用BFS,状态很好找,每次移动空格就会形成一种新的状态,例如:
一、状态如何表示?...整型数组A和bool数组B,然后生成0-8这9个数码的全排列并按照升序或者降序存入数组中,要判断某个状态(一种排列方式)是否出现过,直接通过二分查找的方式找到该排列在A中的下标i,然后查看数组B[i]为...=brr[i])
c++;
cost=c+step;
}
};
int changeId[9][4]={
{-1,-1,3,1},{-1,0,4,2},{-1,1,5,-1},...=brr[i])
c++;
cost=c+step;
}
};
int des=123804765;
int changeId[9][4]={
{-1,-1,3,1},{-1,0,4,2