C. 填充循环矩阵

    传统题 1000ms 256MiB

填充循环矩阵

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

Msa\rm Msa 有一个 n×m\rm n \times m循环矩阵

这意味着第 n\rm n 行与第 11 行是相邻的 , 且第 m\rm m 列与第 11 列是相邻的

Msa\rm Msa 希望用 1n×m\rm 1 \sim n \times m 这些整数填充矩阵 , 需要满足以下条件:

  • 1n×m\rm 1 \sim n \times m 的整数都在矩阵中恰好出现一次

  • 对于每个 1in×m1\rm 1 \leq i \leq n \times m - 1 , i\rm i 所在格子与 i+1\rm i + 1 所在格子要么在 同一行 , 要么在 同一列

  • 对于 1in×m1\rm 1 \leq i \leq n \times m - 1 , 若 Msa\rm Msa 初始在包含 i\rm i 的格子处 , 存在左、右、上、下中的一个方向 , 使得朝该方向移动 恰好 i\rm i 后 , 可到达包含 i+1\rm i + 1 的格子处

矩阵是循环的 (如第 n\rm n 行向下移动一格会到第 11 行 , 第 m\rm m 列向右移动一格会到第 11 列)

请你构造合法矩阵 , 或报告不存在

输入格式

输入一行两个空格分隔的正整数 n,m\rm n, m

输出格式

第一行输出 YESNO , 表示是否找到合法矩阵

若为 YES , 接下来输出 n\rm n 行 , 每行 m\rm m 个空格分隔的整数 , 描述构造的矩阵

若有多组解 , 输出任意一组合法解

你需要严格按照要求输出 , 整数间、行末不能有多余空格 , 否则你将无法通过答案检查器的审查!

4 5  
YES
1 9 14 15 8
2 10 3 16 17
20 19 4 5 18
12 11 13 6 7
4 6
NO

数据规模

任务 n\rm n m\rm m nmn*m 分值
11 5\leq 5 10\leq 10 1010
22 =1=1 1000\leq 1000 1616
33 1000\leq 1000 =1=1 1818
44 1000\leq 1000 3636
55 106\leq 10^6 2020

对于全部的数据 $\rm 1 \leq n,m \leq 10^6 , 1 \leq n \times m \leq 10^6$

2025九月月赛(本场比赛试题由实验舱提供)

未参加
状态
已结束
规则
OI
题目
4
开始于
2025-9-5 8:00
结束于
2025-9-8 21:00
持续时间
3.5 小时
主持人
参赛人数
58