CF1634C.OKEA

传统题 时间 2000 ms 内存 256 MiB 5 尝试 1 已通过 1 标签

OKEA

题目描述

人们担心计算机会变得太聪明并接管世界,但真正的问题是它们太笨了,而且它们已经接管了世界。

—— Pedro Domingos

你在一家著名的百货公司工作,该公司采用了领先的技术,并实行机械化作业——也就是说,使用了机器人!

你所在的部门销售 nkn \cdot k 件商品。第一件商品售价 11 美元,第二件售价 22 美元,依此类推:第 ii 件商品售价为 ii 美元。这些商品被摆放在货架上,形成一个矩形网格:共有 nn 个货架,每个货架上正好有 kk 件商品。我们用 ai,ja_{i,j} 表示第 ii 个货架(1in1 \le i \le n)上从左往右的第 jj 件商品(1jk1 \le j \le k)的价格。

有时,机器人会好奇地思考这样一个问题:对于某个货架 ii 和区间 lrl \le r,商品 ai,l,ai,l+1,,ai,ra_{i,l}, a_{i,l+1}, \ldots, a_{i,r} 的平均价格(算术平均值)是多少?不幸的是,老旧的机器人只能处理整数。如果平均价格不是整数,它们就会宕机。

你关心机器人的福祉。你希望安排商品,使得机器人理论上不会宕机。具体来说,你需要选择一个二维数组 aa,使得:

  • 每个 11nkn \cdot k(包含)之间的数字恰好出现一次。
  • 对于任意的 i,l,ri, l, r,第 ii 个货架上从第 ll 件到第 rr 件商品的平均价格都是整数。

请判断是否存在这样的商品摆放方式。如果存在,请给出任意一种可行的摆放方案。

输入格式

第一行包含一个整数 tt1t5001 \le t \le 500),表示测试用例的数量。

每个测试用例包含一行,包含两个整数 nnkk1n,k5001 \le n, k \le 500),分别表示货架的数量和每个货架的商品数量。

保证所有测试用例中 nn 的总和不超过 500500kk 的总和也不超过 500500

输出格式

对于每个测试用例,输出一行答案。

如果存在这样的摆放方式,输出一行 "YES"。接下来输出 nn 行,每行 kk 个数字,表示每个货架上的商品价格。每个 11nkn \cdot k 的数字在输出中恰好出现一次。

如果不存在这样的摆放方式,输出一行 "NO"。

说明/提示

由 ChatGPT 4.1 翻译

样例

4
1 1
2 2
3 3
3 1
YES
1 
YES
1 3 
2 4 
NO
YES
1 
2 
3 

在线编程 IDE

建议全屏模式获得最佳体验