CF1986B.Matrix Stabilization

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

Matrix Stabilization

题目描述

给你一个大小为 n×mn \times m 的矩阵,矩阵的行从上到下编号为 11nn,列从左到右编号为 11mm。矩阵中第 ii 行与第 jj 列的交点处的元素记为 aija_{ij}

我们有一个用于稳定化矩阵 aa 的算法:

  1. 找到一个单元格 (i,j)(i, j),该单元格的值严格大于其所有相邻单元格的值。如果没有这样的单元格,则终止算法。如果有多个这样的单元格,选择 ii 值最小的单元格;如果仍有多个单元格,选择 jj 值最小的单元格。
  2. aija_{ij} 的值减 1。
  3. 回到步骤 1。

在这个问题中,如果两个单元格 (a,b)(a, b)(c,d)(c, d) 共享一条边,即 ac+bd=1|a - c| + |b - d| = 1,则它们被认为是相邻的。

你的任务是输出矩阵 aa 在稳定化算法执行后的结果。可以证明,此算法不能无限次运行。

输入格式

每个测试包含多组输入数据。第一行包含一个整数 tt (1t1041 \leq t \leq 10^4) —— 输入数据的组数。接下来是这些输入数据的描述。

每组输入数据的第一行包含两个整数 nnmm (1n,m100,nm>11 \leq n, m \leq 100, n \cdot m > 1) —— 矩阵 aa 的行数和列数。

接下来的 nn 行描述了矩阵的相应行。第 ii 行包含 mm 个整数 ai1,ai2,,aima_{i1}, a_{i2}, \ldots, a_{im} (1aij1091 \leq a_{ij} \leq 10^9)。

保证所有输入数据中 nmn \cdot m 的总和不超过 21052 \cdot 10^5

输出格式

对于每组输入数据,输出 nn 行,每行 mm 个数,表示矩阵 aa 在稳定化算法执行后的值。

样例 #1

样例输入 #1

样例

6
1 2
3 1
2 1
1
1
2 2
1 2
3 4
2 3
7 4 5
1 8 10
5 4
92 74 31 74
74 92 17 7
31 17 92 3
74 7 3 92
7 31 1 1
3 3
1000000000 1 1000000000
1 1000000000 1
1000000000 1 1000000000
1 1 
1 
1 
1 2 
3 3 
4 4 5 
1 8 8 
74 74 31 31 
74 74 17 7 
31 17 17 3 
31 7 3 3 
7 7 1 1 
1 1 1 
1 1 1 
1 1 1 

在线编程 IDE

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