其实这个题目的dp很好推,不用想复杂了。
我们来观察一下数据,重点是观察小熊每次取数字的规律:
看出来什么了吗?没看出来的同学试试画出取数的走向看看。(提示,想想贪吃蛇)
观察多组数据你会发现:似乎每组数据中,取数的趋势总是类似蛇形,从左往右取数。
这只是巧合吗?不,我们可以尝试验证一下。每次取数字,起点总是 ( 0 , 0 ) (0,0) (0,0)而重点总是 ( n , m ) (n,m) (n,m),这就导致每次的取数字,一定是从左右选择!
那么我们从左到右不妨先让每一个格子从左而来,然后更新从上/下面走过来的最大值,也就是说,我们如果令 d p [ i ] [ j ] dp[i][j] dp[i][j]为走到这个格子的最大值,我们容易得出:
d p [ i ] [ j ] = max ( s , d