#2869. 【提高】马的遍历
【提高】马的遍历
象棋马跳路径枚举(右向 DFS)
题目描述
中国象棋半张棋盘如图所示,我们只考虑左下角到右上角这一块区域。 现在有一匹马从坐标 (0,0) 出发,要跳到坐标 (4,8)。
要求如下:
- 马按照中国象棋“日字形”方式跳跃。
- 只能往右跳,不允许往左跳。 即每一步的列坐标必须增大。
- 在每个格子上尝试 8 个可能跳法时,按照给定图(b)的 顺时针方向 进行 深度优先搜索(DFS)。
- 请输出马从 (0,0) 到 (4,8) 的 所有可能跳法。
- 输出格式需与前 6 条样例一致。
前 6 条跳法示例:
1:0,0->2,1->4,2->3,4->4,6->2,7->4,8
2:0,0->2,1->4,2->3,4->1,5->3,6->4,8
3:0,0->2,1->4,2->3,4->1,5->2,7->4,8
4:0,0->2,1->4,2->2,3->4,4->3,6->4,8
5:0,0->2,1->4,2->2,3->4,4->2,5->4,6->2,7->4,8
6:0,0->2,1->4,2->2,3->4,4->2,5->0,6->2,7->4,8
...

输入格式
本题 无输入。
棋盘大小固定为 5 行 × 9 列,起点固定为 (0,0),终点固定为 (4,8)。
输出格式
按照 DFS 搜索顺序,输出所有从 (0,0) 到 (4,8) 的可行跳跃路径。
- 每条路径一行;
- 以编号开头,从 1 开始;
- 格式示例:
编号:x1,y1->x2,y2->...->4,8
样例输出(节选)
1:0,0->2,1->4,2->3,4->4,6->2,7->4,8
2:0,0->2,1->4,2->3,4->1,5->3,6->4,8
(完整输出较长,此处不列出全部)
提示
- 深度优先搜索(DFS)按照指定方向顺序进行。
- 每一步跳法必须使列坐标严格增加(只往右跳)。
- 可视为固定搜索树的遍历输出问题。