#929. 贪吃蛇

贪吃蛇

背景

贪吃蛇 游戏是由我们控制蛇头的运动方向,通过来捡取食物来计算得分,每吃掉一个食物,蛇的长度都会增加,当蛇头与蛇身发生碰撞时,游戏结束。在一个循环边界的区域内,我们需要避免与蛇身碰撞,来获取最大得分。

image

题目

学长找到了他多年前用过的一部手机(bei jing xu yao),但手机存放多年,控制蛇运动方向的键只有右,下键可以使用,其余键均失灵。换句话说,你只能控制蛇向右或者向下移动当前位置为(x,y)(x,y),你只能移动到(x+1,y)( x + 1 , y )(x,y+1)( x , y + 1 ))。由于地图是循环的,当你在最后一列时,你可以向右移动移动到当前行的第一列(在最后一行向下移动移动到当前列的第一行)。注意: 蛇每吃掉一个食物,长度都会加一单元格长度,蛇的初始长度为 11。我们需要在nnn*n的矩阵中,每个格子都会有食物,每个格子处的食物得分都是已知的,求我们从11(1,1)走到(n,n)(n,n)处得分最大为多少。

走到(m,m)处视为结束游戏。

输入

第一行一个数字 nn ( 1n2001 \le n \le200 ).

接下来nn行,每行nn个非负整数,表示ai,ja_{i,j}处食物分数, ( 0ai,j1090 \le a_{i,j} \le 10^9 )

输出

打印一个整数,你可以获得的最高分数

2
1 2
3 4
8
3
10 10 10
10 0 10
10 10 10
80