3630: 牛牛的 RPG 游戏(第一轮04)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:7 解决:2

题目描述

牛牛最近在玩一款叫做“地牢迷宫”的游戏,该游戏中的每一层都可以看成是一个 n*m 的二维棋盘,牛牛从左上角起始的(1,1)点移动到右下角的(n,m)点。

游戏中的每一个格子都会触发一些事件,这些事件将会影响玩家的得分。

具体来说,每到一个格子玩家触发事件时,首先会立即获得一个收益得分 val(i,j)。 注意这个得分不一定是正的,当它的值为负时将会扣除玩家一定的分数。

同时这个事件还会对玩家造成持续的影响,直到玩家下一次触发其他事件为止, 每走一步,玩家都会获得上一个事件触发点 buff(i,j)的得分。

在游戏开始时牛牛身上还没有任何的 buff,所以在牛牛还未触发任何事件之前每 走一步都不会产生任何影响。

牛牛使用“潜行者”这个职业,所以他路过地牢中的格子时, 可以选择不去触发这 些事件。

同时牛牛是一个速通玩家,想要快速的到达终点,所以他每次只会选择往右走或 者往下走。

牛牛想要知道,他玩游戏可以获得的最大得分是多少,你能告诉他么。

输入

第一行输入两个正整数 n,m

接下来输入 n 行,每行输入 m 个整数buff(i,j)表示该事件出发点被触发后,直 到下一次触发事件,每移动一步改变的得分。

接下来输入 n 行,每行输入 m 个整数val(i, j)表示该事件出发点被触发后,分数 的该变量。

输入保证,对于起点和终点,val(1, 1) = val(n, m) = buff(1, 1) = buff(n, m) = 0。

输出

输出仅一行一个非负整数,表示牛牛从左上角走到右下角的最多得分。

样例输入 复制

3 3
0 1 -80
1 -1000 0
-100 0 0
0 -5 100
2 100 0
100 -1 0

样例输出 复制

20

提示

【样例 1 说明】

一开始在(1,1)点,得分 0,身上没有事件影响buff 。

接下来移动到(1,2)点,不触发事件,得分 0,身上没有事件影响buff 。

接下来移动到(1,3)点,触发事件,得分 100,身上有buff影响,每走一步减少 80 点得分。

接下来移动到(2,3)点,移动时扣除 80 得分,身上还有20 点得分,然后触发事件,

得分+0,同时 buff 被替换为每走一步+0。

接下来移动到(3,3)点,结束游戏,总得分 20。


【数据范围】

对于前10%的测试数据,保证1  ≤ n, m  ≤ 5   对于前20%的测试数据,保证1  ≤ n, m  ≤ 30 对于另20%的测试数据,保证min(n, m) = 1  对于另20%的测试数据,保证min(n, m) = 2

对于另10%的测试数据,保证输入的buff(i,j) = 0

对于100%的测试数据,保证n × m ≤ 105, |val(i,j)| ≤ 104 ,

对于起点和终点, val(1, 1) = val(n, m) = buff(1, 1) = buff(n, m) = 0

来源/分类