#P1195. 俄式简餐
俄式简餐
俄式简餐
题目描述
现有以下两类俄罗斯方块:

假如两类俄罗斯方块均无限量使用,可任意竖直翻转、水平翻转、旋转 。 请构造出不重叠、不遗漏、严丝合缝地填充 行 列网格的方案,或报告无解。 例如,下图展示了对 行 列网格的其中一种合法填充方案。

输入格式
本题单个测试点可能含有多组数据。输入的第一行包含数据组数 。 对于每组数据,一行包含两个整数 和 ,分别表示网格的行数和列数。 保证所有数据 的总和不超过 。
输出格式
对于每组数据:
先在一行内输出 YES 或 NO(本题严格区分大小写),表示是否有解。
若有解,则再输出 行,每行包含 个整数,描述填充方案。其中各俄罗斯方块从 开始依次赋予不同的正整数编号,且编号在输出的 个整数中恰好出现 次以标识该俄罗斯方块的类型、方向及在网格中的位置。不允许跳号,即占用编号 之前须优先占用编号 。
如果存在多种合法的填充方案,输出任意一种即可。
样例 #1
样例输入 #1
3
2 3
2 4
6 8
样例输出 #1
NO
YES
1 1 1 1
2 2 2 2
YES
1 1 1 2 11 11 11 11
1 4 5 2 2 2 12 12
8 4 5 5 5 6 12 10
8 4 4 6 6 6 12 10
8 8 9 9 9 9 7 10
3 3 3 3 7 7 7 10