#2869. 【提高】马的遍历

【提高】马的遍历

象棋马跳路径枚举(右向 DFS)

题目描述

中国象棋半张棋盘如图所示,我们只考虑左下角到右上角这一块区域。 现在有一匹马从坐标 (0,0) 出发,要跳到坐标 (4,8)

要求如下:

  1. 马按照中国象棋“日字形”方式跳跃。
  2. 只能往右跳,不允许往左跳。 即每一步的列坐标必须增大。
  3. 在每个格子上尝试 8 个可能跳法时,按照给定图(b)的 顺时针方向 进行 深度优先搜索(DFS)
  4. 请输出马从 (0,0) 到 (4,8) 的 所有可能跳法
  5. 输出格式需与前 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)按照指定方向顺序进行。
  • 每一步跳法必须使列坐标严格增加(只往右跳)。
  • 可视为固定搜索树的遍历输出问题。