CF2049D Shift + Esc

题目描述

对于被某个装置捉弄之后,龙 Evirir 决定利用他的魔法技能来改变现实以迅速逃脱。 你得到一个 $n$ 行 $m$ 列的非负整数网格,以及一个整数 $k$。我们用 $(i, j)$ 表示从上到下第 $i$ 行、从左到右第 $j$ 列的单元格($1 \le i \le n$,$1 \le j \le m$)。在每个单元格 $(i, j)$ 上都有一个整数 $a_{i, j}$。 你起始位于 $(1, 1)$,目标是走到 $(n, m)$。在移动过程中,你只能向下或向右移动——也就是说,如果你在 $(i, j)$,只能移动到 $(i+1, j)$ 或 $(i, j+1)$,当然,前提是这些目标单元格必须存在。 在开始移动之前,你可以进行以下操作任意多次: - 从 $1$ 到 $n$ 中选择一个整数 $i$,然后将第 $i$ 行的元素循环左移一位。这个操作的效果是,将每个 $a_{i,j}$ 更新为 $a_{i,(j \bmod m) + 1}$。 请注意,一旦你开始移动,就不能再进行行移操作。从 $(1, 1)$ 到 $(n, m)$ 之后,令 $x$ 是你在开始移动之前进行的操作次数,而 $y$ 是你经过的所有单元格上的整数之和(包括起始和目标位置)。最终成本被定义为 $kx + y$。 你的任务是计算出以最小成本从 $(1, 1)$ 移动到 $(n, m)$ 所需的操作次数。

输入格式

输入包括多个测试用例。第一行为测试用例数量 $t$($1 \le t \le 10^4$)。接下来每个测试用例包含: - 一行三个用空格分隔的整数 $n$、$m$ 和 $k$($1 \leq n, m \leq 200$,$0 \leq k \leq 10^9$)。 - 随后的 $n$ 行,每行包含 $m$ 个用空格分隔的整数,分别表示这一行上的 $a_{i,1},\,a_{i,2},\,\ldots,\,a_{i,m}$($0 \leq a_{i,j} \leq 10^9$)。 所有测试用例中 $n \cdot m$ 的总和不超过 $5 \cdot 10^4$。

输出格式

对于每个测试用例,输出从起点 $(1, 1)$ 到终点 $(n, m)$ 的最小成本。

说明/提示

在第一个测试用例中,最低成本是 $113$,可以通过以下步骤实现: 1. 将第 3 行循环左移一次。网格变成: $$ \begin{bmatrix} 3 & 4 & 9 \\ 5 & 2 & 4 \\ 101 & 101 & 0 \end{bmatrix}. $$ 2. 按以下路径行进:$(1, 1) \to (1, 2) \to (2, 2) \to (2, 3) \to (3, 3)$。 进行了一次操作,访问的路径上整数之和为 $y = 3 + 4 + 2 + 4 + 0 = 13$。因此,总成本为 $kx + y = 100 \cdot 1 + 13 = 113$。 在第二个测试用例中,你可以将第 1 行左移一次,第 2 行左移两次,第 3 行左移三次。最终网格变成: $$ \begin{bmatrix} 0 & 0 & 10 & 10 \\ 10 & 0 & 0 & 0 \\ 10 & 10 & 10 & 0 \end{bmatrix}. $$ 共进行了 $x = 6$ 次操作,并且经过的路径上整数之和为 $y = 0$。因此,总成本为 $6 \cdot 1 + 0 = 6$。 **本翻译由 AI 自动生成**