2352. 回形取数

1000ms 256MB 简单 模拟法
题目描述
回形取数是沿着一个数字矩阵的左上角向下开始移动取数,当前方没有数字或者数字已经被取过就会“左转”继续移动(这里的左转是相对于移动方向的左侧),当没有数可取时回形取数结束。
![图片](/media/problem_images/49d4f4f97441426196a515420cc1873f.png)
现在给定一个 $N \times M$ 的矩阵,矩阵的数字从 1 开始按行优先顺序填充,即第 $i$ 行第 $j$ 列的数字为 $(i-1) \times M + j$。请输出最终的回形取数路线。
输入格式
- 第一行包含一个正整数 $N$ ($2 \le N \le 20$),表示矩阵的行数。 - 第二行包含一个正整数 $M$ ($2 \le M \le 20$),表示矩阵的列数。
输出格式
- 输出一行,表示回形取数的数字线路,每个数字之间用一个英文逗号 `,` 隔开。
样例 1
输入 (Input)
3
2
输出 (Output)
1,3,5,6,4,2
- 对于所有数据:$2 \le N, M \le 20$。 - **矩阵生成提示**:数字矩阵不需要手动输入,程序中需要根据输入的 $N$ 和 $M$ 自动生成一个从 1 到 $N \times M$ 的顺序矩阵。 - **转向逻辑详解**: 初始方向为**向下**。 - 向下移动时,若遇到边界或已访问节点,左转变为**向右**; - 向右移动时,左转变为**向上**; - 向上移动时,左转变为**向左**; - 向左移动时,左转变为**向下**。 方向循环顺序为:下 $\to$ 右 $\to$ 上 $\to$ 左 $\to$ 下。
自测终端 stdin → stdout
输入 stdin
CtrlShiftEnter
输出 stdout

                
错误 stderr

                
CtrlEnter提交
自动保存已开启
操作成功
wzs_oj@kernel:~ — wzs-sh
guest@wzsoj:~$
刷新页面 F5
复制 Ctrl+C
粘贴 Ctrl+V
搜索题目
站点公告
今日神谕
CSP 倒计时
排行榜
我的提交
Esc 关闭 Enter 跳转 支持模糊匹配数字