#CF1917E. E. 构造矩阵
E. 构造矩阵
E. 构造矩阵
每次测试时间限制:1 秒
每次测试内存限制:256 兆字节
你得到一个偶数 和一个整数 。你的任务是构造一个大小为 的矩阵,矩阵由数字 和 组成,使得满足以下条件,或者报告不可能:
- 矩阵中所有数字的和恰好为 ;
- 对于每一行 ,该行所有数字的按位异或(XOR) 都相同;
- 对于每一列 ,该列所有数字的按位异或(XOR) 都相同。
输入
每个测试包含多个测试用例。第一行包含一个整数 ()——测试用例的数量。接下来是每个测试用例的描述。
每个测试用例由一行描述,包含两个整数 和 (, 是偶数,)。
保证所有测试用例的 之和不超过 。
输出
对于每个测试用例,如果能够构造一个满足所有条件的矩阵,输出 Yes,否则输出 No。
如果可以构造矩阵,则接下来的 行中,第 行应包含 个整数,表示矩阵第 行的元素。
示例
输入
5
4 0
6 6
6 5
4 2
6 36
输出
Yes
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Yes
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
No
No
Yes
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
1 1 1 1 1 1
注意
在第一个示例中,所有条件都满足:
- 矩阵中所有数字的和恰好为 ;
- 对于每一行 ,该行所有数字的 XOR 为 ;
- 对于每一列 ,该列所有数字的 XOR 为 。
在第三个示例中,可以证明不可能找到满足所有条件的矩阵。