P4915. 对称画布
场次:2026年5月9日-开发岗 · 来源:CodeFun2000 P4915
题目描述
一位数字艺术家正在创作一幅像素画,画布由 n 行 m 列的格子组成。第 i 行第 j 列的格子初始装有 克颜料。
他可以任意移动颜料:从任意格子取出若干克颜料放到另一个格子中,但每个格子中的颜料量必须保持非负整数,且所有格子的颜料总量不变。
艺术家希望最终画布同时满足以下两个对称条件:
- 关于水平中轴线对称:对于所有 ,有 ;
- 关于垂直中轴线对称:对于所有 ,有 。
其中 表示最终第 i 行第 j 列的颜料克数。
请你判断是否存在一种合法的颜料分配方案,如果存在,请给出任意一种最终分布;否则指出不可能。
约束条件:
- 测试数据组数 满足 。
- 每组数据中,行数 和列数 满足 ,初始颜料克数 满足 。
- 保证单个测试点内所有数据的 之和不超过 。
输入格式
第一行包含一个整数 T,表示测试数据组数。
接下来每组数据按以下格式给出:
第一行包含两个整数 n 和 m,分别表示画布的行数和列数。
接下来 n 行,每行包含 m 个整数,其中第 i 行第 j 个整数表示初始颜料克数 。
输出格式
对于每组测试数据,若不存在满足两个对称条件的最终分布,则输出一行 -1。
否则输出 n 行,每行包含 m 个非负整数,表示一种合法的最终颜料克数分布 。
示例
示例 1
输入:
1
3 3
1 2 3
4 5 6
7 8 9
输出:
0 0 0
0 45 0
0 0 0
说明:
初始矩阵总和 。因为 和 都是奇数,中心格子 自己构成大小为 1 的对称轨道。可以将所有颜料集中到中心格子,颜料总量不变,并且满足水平和垂直对称条件。因此存在可行方案,输出如上的矩阵。
示例 2
输入:
1
2 2
4 0
0 0
输出:
1 1
1 1
说明:
初始矩阵总和 。 都是偶数,所有对称轨道的大小均为 4。总和 4 能被 4 整除,因此在四个角各分配 即可使最终矩阵对称,且总量不变。输出全 1 矩阵为一种可行方案。
示例 3
输入:
1
3 2
1 1
1 1
1 1
输出:
0 0
3 3
0 0
说明:
初始矩阵总和 。(奇数),(偶数),存在大小为 2 的左右对称轨道(例如中间行的第 1 列和第 2 列)。总和 6 是偶数,将 放在中间行的两个格子上,其他格子置 0,即可满足对称且总量不变。
示例 4
输入:
1
3 2
1 2
3 4
5 6
输出:
-1
说明:
初始矩阵总和 。(奇数),(偶数),所有对称轨道的大小为 2 或 4,因此最终总和必须为偶数。这里 是奇数,不能被 2 整除,故不存在合法方案,输出 -1。