CF2055C.The Trail

普及-

通过率:0%

AC君温馨提醒

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

题目描述

佛罗里达没有山脉,佛罗里达人无法理解它们的存在。因此,他非常需要你的帮助。

在荒野中有一片山区地带,用一个 nnmm 列的矩形网格表示。网格中的每个单元格由其位置 (i,j)(i, j) 标识,其中 ii 是行索引,jj 是列索引。单元格 (i,j)(i, j) 的海拔高度记为 ai,ja_{i,j}

然而,这片区域被人为篡改过。一条由 n+m1n+m-1 个单元格组成的路径,从左上角 (1,1)(1, 1) 出发,最终到达右下角 (n,m)(n, m),路径上的每个单元格 (i,j)(i, j) 的高度 ai,ja_{i,j} 都被设置为 00。这条路径只能严格地向下(D\mathtt{D})或向右(R\mathtt{R})移动。

为了恢复地形的原貌,已知在被篡改之前,这片区域拥有一种神奇的性质:所有行和所有列的海拔高度之和都相同。更正式地说,存在一个整数 xx,使得对于所有 1in1\le i\le n,都有 j=1mai,j=x\sum_{j=1}^m a_{i, j} = x,并且对于所有 1jm1\le j\le m,都有 i=1nai,j=x\sum_{i=1}^n a_{i, j} = x

你的任务是为路径上的单元格重新赋予高度,使上述神奇性质得以恢复。可以证明,总是存在解。如果有多个满足条件的解,输出任意一个即可。

输入格式

每个测试点包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。

每个测试用例的第一行包含两个整数 nnmm2n,m10002 \leq n, m \leq 1000),表示网格的行数和列数。

第二行包含一个长度为 n+m2n+m-2 的字符串 sssi=Ds_i = \mathtt{D}si=Rs_i = \mathtt{R}),表示从 (1,1)(1, 1)(n,m)(n, m) 的路径。字符 D\mathtt{D} 表示向下走一步,R\mathtt{R} 表示向右走一步。

接下来的 nn 行,每行包含 mm 个整数 ai,1,ai,2,,ai,ma_{i,1}, a_{i,2}, \ldots, a_{i,m}106ai,j106-10^6 \leq a_{i,j} \leq 10^6),表示网格中每个单元格的高度。保证如果单元格 (i,j)(i, j) 在路径上,则 ai,j=0a_{i,j} = 0

保证所有测试用例中 n×mn \times m 的总和不超过 10610^6

输出格式

对于每个测试用例,输出 nn 行,每行 mm 个整数,表示恢复后的网格高度 bi,jb_{i, j}。要求 1015bi,j1015-10^{15} \leq b_{i,j} \leq 10^{15},并且如果 (i,j)(i, j) 不在路径上,则 ai,j=bi,ja_{i,j} = b_{i,j}。如果有多个解,输出任意一个即可。

输入输出样例

  • 输入#1

    4
    3 3
    DRRD
    0 2 3
    0 0 0
    3 1 0
    4 5
    DRRRRDD
    0 1 0 2 3
    0 0 0 0 0
    -1 0 -3 -3 0
    0 0 0 -1 0
    2 3
    RRD
    0 0 0
    0 1 0
    5 5
    DDDDRRRR
    0 25 2 9 11
    0 6 13 20 22
    0 17 24 1 8
    0 3 10 12 19
    0 0 0 0 0

    输出#1

    1 2 3
    2 3 1
    3 1 2
    -6 1 0 2 3
    7 -1 3 2 -11
    -1 0 -3 -3 7
    0 0 0 -1 1
    0 -1 1
    0 1 -1
    18 25 2 9 11
    4 6 13 20 22
    15 17 24 1 8
    21 3 10 12 19
    7 14 16 23 5

说明/提示

在第一个测试用例中,网格被填充为每行和每列都包含 1,2,31, 2, 3,它们的和都是 66

在第二个测试用例中,网格被填充为所有行和列的和都是 00

首页