#P1205. 赶集

    ID: 217 传统题 1000ms 512MiB 尝试: 0 已通过: 0难度: 普及 ← 上一题 下一题 → 随机一题 上传者: 标签 动态规划 DP 网格图 递推
显示设置

赶集

赶集

题目背景

小镇的市场排成 nn 行 mm 列,小 R 每天要赶着去集市,再赶着回家。

题目描述

把市场看成一个 nn 行 mm 列的网格,第 ii 行第 jj 列的摊位能带给小 R wi,jw_{i,j} 的收获(收获可以是负数,表示他在这里要花掉钱)。

小 R 的家在网格的左上角 (1,1)(1,1),集市在网格的右下角 (n,m)(n,m)。

他从 (1,1)(1,1) 出发前往 (n,m)(n,m),每一步只能向右或向下走;到达之后,他再从 (n,m)(n,m) 走回家,每一步只能向左或向上走。

两条路线除了起点 (1,1)(1,1) 与终点 (n,m)(n,m) 之外,不能有公共的格子——同一个摊位他只会经过一次,只计算一次收获。起点与终点的收获也只计算一次。

请你求出小 R 这一趟能获得的最大总收获。

输入格式

从标准输入读入数据。

第一行两个整数 n,mn,m。

接下来 nn 行,每行 mm 个整数,其中第 ii 行第 jj 个数表示 wi,jw_{i,j}。

输出格式

输出到标准输出。

输出一行一个整数,表示最大总收获。

样例 1 输入

3 3
1 2 3
4 5 6
7 8 9

样例 1 输出

40

样例 1 解释

去程走 (1,1)→(2,1)→(3,1)→(3,2)→(3,3)(1,1)\to(2,1)\to(3,1)\to(3,2)\to(3,3),回程走 (3,3)→(2,3)→(1,3)→(1,2)→(1,1)(3,3)\to(2,3)\to(1,3)\to(1,2)\to(1,1)。

两条路线除起点终点外没有公共格子,一共经过 88 个格子,只有 (2,2)(2,2) 没有被经过,收获为 45−5=4045-5=40。由于两条路线一共最多只能覆盖 88 个不同的格子,所以 4040 是最大值。

数据范围

测试点编号 n,mn,m wi,jw_{i,j} 特殊性质
1∼31\sim 3 ≤4\le 4 ≤109\le 10^9 无
4∼74\sim 7 ≤10\le 10
8∼118\sim 11 ≤30\le 30 A
12∼1512\sim 15 ≤100\le 100 B
16∼2016\sim 20 无

特殊性质 A:所有 wi,j≥0w_{i,j}\ge 0。

特殊性质 B:n=mn=m。

提交说明

本题使用标准输入输出。程序应从标准输入读入数据,并将答案输出到标准输出。