只有一种有效操作,那就是旋转4条线中的一条,每条线有7个格子。旋转操作其实是将6个格子往对应方向移动一格,而最前面的格子会移动到末尾。这样有8种移动方式,每种方式标记为A-H。...比如本题中的旋转操作,每一次旋转,在搜索完成时都会还原这个旋转操作。估值函数在DFS中往往用于剪枝操作,本题中将剩余数字作为估值函数,判断是否需要继续搜索。...0, 2, 6, 11, 15, 20, 22, // A
1, 3, 8, 12, 17, 21, 23, // B
10, 9, 8, 7, 6, 5, 4,..., 8, 3, 1, // E
22, 20, 15, 11, 6, 2, 0, // F
13, 14, 15, 16, 17, 18, 19, // G
4,...5, 6, 7, 8, 9, 10 // H
};
// 反方向
int res[] = {5, 4, 7, 6, 1, 0, 3, 2};
int depth;
bool check