题解思路与方法
思路概述
将网格按“棋盘”染色:如果 (i+j) 为偶数,填 1;否则填 −1。
- 局部性质:任意 2×2 子网格恰有两个黑格两个白格,和为 1+(−1)+1+(−1)=0;
- 全局性质:n×m 是偶数,黑白格各占一半,总和也为 0;
- 非零性:所有填入数均为 ±1,满足非零要求。
P3321.第2题-局部全局填充
题目内容
给定一个n行m列的网格,使用(i,j)表示第i行第j列的单元格,其中1≤i≤n,1≤j≤m;
最初所有单元格均为空,你需要在每个单元格填入一个非零整数,使得以下条件成立:任意的2×2子网格中,四个单元格内整数之和等于整个网格所有单元格内整数之和;
已知n×m为偶数,可证明必有解。
输入描述
每个测试文件均包含多组测试数据。第一行输入一个整数T(1≤T≤104)代表数据组数,每组测试数据描述如下:
在一行上输入两个整数n,m(2≤n,m,n×m≤106),分别表示网格的行数和列数。
除此之外,保证单个测试文件的n×m之和不超过106。
输出描述
对于每组测试数据,一共n行,第i行输出m个用空格分隔的非零整数ai,1,ai,2,...,ai,m(−5×103≤ai,j≤5×103)后的格。
如果存在多个解决方案,您可以输出任意一个,系统会自动判定是否正确。注意,自测运行功能可能因此返回错误结果,请自行检查答案正确性
样例1
输入
1
2 2
输出
1 3
5 7