题意
nnn 行 mmm 列棋盘,马给定起点坐标,马走日(888 个方向)。用 BFS 求起点到棋盘每一格最少步数;无法到达输出 -1。输出矩阵每个数字左对齐,占 555 格宽度。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
思路
1.1.1. BFS(广度优先搜索),BFS 天然求最短路,适合无权图最少步数;
2.2.2. 马一共 888 个移动方向;
3.3.3. vis 数组标记是否入队,防止重复进队列;ans 数组存最少步数,初始全部填 ‑1;
4.4.4. 起点步数 000,入队;每次出队,向 888 方向拓展,合法且未访问的点入队,步数 +1;
5.5.5. 输出使用 setw(5) 左对齐,每个输出占 555 字符宽度。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
完整代码