两个机器人的合法路径长度都是 h+w−2 步,所以可以按步数一起转移。
在智能物流中心里,货架排列成一个 h 行 w 列的矩形区域。位置 (i,j) 处是一个货架,上面存放的货物价值为 vi,j。现在需要同时调度两台机器人进行盘点:机器人 A 从左上角 (0,0) 出发,每次只能向下或向右移动,最终要到达右下角 (h−1,w−1);机器人 B 从右上角 (0,w−1) 出发,每次只能向下或向左移动,最终要到达左下角 (h−1,0)。
两台机器人同时出发,并且每一步都必须走一格,因此它们的步数始终保持相同。每当机器人到达一个货架,就会把该货架的货物价值累加到自己的盘点结果中。货架之间的通道非常狭窄,任意时刻两台机器人不能站在同一个货架上;但同一个货架可以在不同时刻被两台机器人分别经过。
管理员需要为两台机器人规划满足上述限制的路线,使得它们累加的货物价值总和尽可能大。请计算这个最大总和。
约束条件
3 ≤h,w≤ 100。0 ≤vi,j≤ 100000。第一行包含两个整数 h 和 w,分别表示货架矩阵的行数和列数。
接下来 h 行,每行包含 w 个整数,按行依次给出每个货架的货物价值 vi,j。
输出一个整数,表示两台机器人能够取得的货物价值总和的最大值。
输入
3 3
1 2 3
4 5 6
7 8 9
输出
58
说明
矩阵大小为 3×3。机器人 A 选择 (0,0)→(1,0)→(1,1)→(1,2)→(2,2),途经价值之和为 1+4+5+6+9=25。机器人 B 选择 (0,2)→(1,2)→(2,2)→(2,1)→(2,0),途经价值之和为 3+6+9+8+7=33。
两条路线在对应时刻的位置分别为 (0,0),(1,0),(1,1),(1,2),(2,2) 和 (0,2),(1,2),(2,2),(2,1),(2,0),没有任何同一时刻处于同一格。因此总价值为 25+33=58,这也是可行路线中的最大值。
输入
3 3
0 0 0
0 5 0
0 0 0
输出
5
说明
在给定矩阵中,只有 (1,1) 的价值为 5,其余均为 0。从两个起点到达 (1,1) 都需要经过 2 步移动;如果两台机器人都经过该格,它们会在出发后经过 2 步移动时同时到达,从而发生碰撞。因此最多只有一台机器人能取得该价值 5。
例如机器人 A 走 (0,0)→(1,0)→(1,1)→(1,2)→(2,2),机器人 B 走 (0,2)→(1,2)→(2,2)→(2,1)→(2,0),两条路线没有同时刻重叠。总价值为 5+0=5。
输入
3 4
0 0 0 0
0 0 0 0
0 0 0 0
输出
0
说明
矩阵大小为 3×4,所有货架价值均为 0。无论两台机器人选择哪条满足移动限制且不发生碰撞的路线,途经货架的价值总和始终为 0,因此最大总和为 0。
© CodeFun2000 · 使用条款
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册