CF1986B.Matrix Stabilization

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给你一个大小为 n×mn \times m 的矩阵,矩阵的行从上到下编号为 11 到 nn,列从左到右编号为 11 到 mm。矩阵中第 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) 共享一条边,即 ∣a−c∣+∣b−d∣=1|a - c| + |b - d| = 1,则它们被认为是相邻的。

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

输入格式

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

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

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

保证所有输入数据中 n⋅mn \cdot m 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

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

样例 #1

样例输入 #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 
    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

输入解题思路,AI测评打分。不知道怎么写?

首页