#E0043. 迷宫路线

迷宫路线

题目描述

有一个 nnmm 列的二维迷宫。我们用 (i,j)(i,j) 表示第 ii 行第 jj 列的那个格子,用 ai,ja_{i,j} 表示格子 (i,j)(i,j) 的价值。

二维迷宫中有两位玩家。

第一位玩家叫做张漂亮,她初始的时候在左上角的格子 (1,1)(1,1) 处,她要移动到右下角的格子 (n,m)(n,m) 处,每次移动,她只能移动到当前格子右边或者下面相邻的格子,且不能移动到迷宫外。即:若张漂亮当前在格子 (i,j)(i,j),则她可以移动到右侧的格子 (i,j+1)(i,j+1) 处(当 j<mj \lt m 时)或者下方的格子 (i+1,j)(i+1,j) 处(当 i<ni \lt n 时)。

第二位玩家叫做张美丽,她初始的时候在左下角的格子 (n,1)(n,1) 处,她要移动到右上角的格子 (1,m)(1,m) 处,每次移动,她只能移动到当前格子右边或者上面相邻的格子,且不能移动到迷宫外。即:若张漂亮当前在格子 (i,j)(i,j),则她可以移动到右侧的格子 (i,j+1)(i,j+1) 处(当 j<mj \lt m 时)或者上方的格子 (i1,j)(i-1,j) 处(当 i>1i \gt 1 时)。

两位玩家都有很多条不同的路径可以选择,但是游戏要求两位玩家的路径必须包含恰好 11 个公共的格子,因为她们需要在这个公共的格子进行信息交换,而如果公共的格子数量大于 11 个,则她们会被游戏里面的大boss发现,从而输掉游戏。

这也就是说,你需要为张漂亮设计一条从 (1,1)(n,m)(1,1) \rightarrow (n,m) 且每次只能往右或往下移动一格的路径,同时为张美丽设计一条从 (n,1)(1,m)(n,1) \rightarrow (1,m) 且每次只能往右或往上移动一格的路径,并且要求这两条路径存在恰好一个公有的格子。

游戏的得分为:除去那一个公共格子外,其它所有处在两条路径上的格子的价值之和。

因为在公共的格子,两位玩家忙于信息交换而无暇顾及获取格子的价值,而在其它路径上的格子,玩家可以专心获取格子的价值。

每个玩家都可以在某个格子停留任意长的时间,这就意味着,两位玩家并不一定需要同时到达公共的格子,先到公共格子的玩家可以在哪里等待另一位玩家到达,再交换信息。

求:满足上述条件的所有方案中,能够得到的游戏得分的最大值。

输入格式

第一行,两个整数 nnmm3n,m10003 \le n,m \le 1000)。

接下来 nn 行,每行包含 mm 个整数。其中第 ii 行的第 jj 个整数表示格子 (i,j)(i,j) 的价值 ai,j(0ai,j105)a_{i,j}(0 \le a_{i,j} \le 10^5)

输出格式

输出一个整数,表示满足题目条件(两条路径包含恰好一个公共的格子)的情况下游戏得分(路径上出公共格子外其它所有格子的价值之和)的最大值。

3 3
1 2 3
4 5 6
7 8 9
40

说明/提示

样例解释

一共有两种满足条件的方案:

  • 方案1:张漂亮选择:右→下→下→右;张美丽选择:上→右→右→上
  • 方案2:张漂亮选择:下→右→右→下;张美丽选择:右→上→上→右

两种方案的公共格子都是 (2,2)(2,2),且两种方案除了公共格子外恰好经过了迷宫中的其它格子恰好一次,所以游戏得分为其它所有格子的价值之和 1+2+3+4+6+7+8+9=401+2+3+4+6+7+8+9=40

数据规模与约定

  • 对于 30%30\% 的数据,n,m,ai,j10n,m,a_{i,j} \le 10
  • 对于 60%60\% 的数据,n,m100,ai,j1000n,m \le 100,a_{i,j} \le 1000
  • 对于 100%100\% 的数据,3n,m1000,0ai,j1053 \le n,m \le 1000, 0 \le a_{i,j} \le 10^5