#L5464. 「eJOI2025」网格

    ID: 5232 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>动态规划状态设计优化网格路径绝对值处理

「eJOI2025」网格

#5464. 「eJOI2025」网格

题目描述

题目译自 eJOI2025eJOI2025 Day1Day1 T2.T2. Grid

Simona 梦想着拥有数不尽的财富。她受邀参加一个赢取大奖的游戏。

Simona 将被放置在一个大小为 N×MN \times M、填满正整数的网格 AA 的单元格 (0,0)(0, 0) 处。她必须到达单元格 (N1,M1)(N-1, M-1)。为此,她可以从当前单元格 (x,y)(x, y) 重复移动到任何其他单元格 (x+d,y)(x+d, y)(x,y+d)(x, y+d),其中 d>0d > 0。对于每一次这样的移动,Simona 将获得 Ax,yAx,yC|A_{x,y} - A_{x',y'}| - C 的奖励金币,其中 (x,y)(x', y') 是她的新坐标,CC 是在旅程开始前固定的一个常数成本。请注意,如果表达式 Ax,yAx,yC|A_{x,y} - A_{x',y'}| - C 的结果为负数,Simona 将会失去金币。另请注意,游戏结束时金币数量可能为负。

请帮助 Simona 确定她能以最多的金币数量完成游戏。

请注意,如果 a0a \geq 0,则 a=a|a|=a;否则 a=a|a|=-a

实现细节

您必须实现函数 max_profit

long long max_profit(int N, int M, int C,
                     std::vector<std::vector<int>> A)
  • N,MN, M:网格的尺寸;
  • CC:测试点的固定成本常数;
  • AA:一个大小为 N×MN \times M 的整数向量的向量,代表二维网格(按行然后按列索引)。

对于每个测试点,该函数将被调用一次,并且必须返回 Simona 能以最多的金币数量结束游戏。

输入格式

第一行包含三个整数:N,M,CN, M, C 的值。

22 到第 N+1N+1 行:每行包含 MM 个整数——Ai,jA_{i,j} 的值。

输出格式

第一行包含一个整数:该调用的返回值。

样例 1

考虑以下调用:

max_profit(5, 6, 4, {{20, 24, 31, 33, 36, 40},
                   {25, 23, 25, 31, 32, 39},
                   {31, 26, 21, 24, 31, 35},
                   {32, 28, 25, 21, 26, 28},
                   {36, 35, 28, 24, 21, 27}})

在这种情况下,最优路径是 $(0,0) \xrightarrow{7} (0, 2) \xrightarrow{2} (1, 2) \xrightarrow{10} (1,5) \xrightarrow{8}(4, 5)$,沿着这条路径获得的金币数量是 7+2+10+8=277+2+10+8=27。您的函数必须返回 2727

样例 2

max_profit(2, 2, 100, {{1, 2}, {3, 4}})

在这种情况下,您的函数必须返回:197-197。请注意,答案可能是负值。

数据范围与提示

对于所有输入数据,满足:

  • 1N,M1 \leq N, M
  • NM500 000N \cdot M \leq 500\ 000
  • 对于 0i<N0 \leq i < N0j<M0 \leq j < M,有 1Ai,j1 000 0001 \leq A_{i, j} \leq 1\ 000\ 000
  • 0C1 000 0000 \leq C \leq 1\ 000\ 000

详细子任务附加限制及分值如下表所示。

子任务 分值 子任务依赖 附加限制
0 00 - 样例。
1 99 N=1N=1, M200M \leq 200
2 55 N=1N=1, Ai,jAi,j+1A_{i,j} \leq A_{i, j+1}
3 88 N=1N=1, C=0C=0
4 1010 1 N=1N=1, M50 000M \leq 50\ 000
5 77 1-4 N=1N=1
6 1515 1 N,M200N, M \leq 200
7 99 2 Ai,jAi+1,j,Ai,j+1A_{i,j} \leq A_{i+1, j}, A_{i, j+1}
8 1212 3 C=0C=0
9 0-1, 4, 6 NM50 000N \cdot M \leq 50\ 000
10 1313 0-9 -