#include <iostream>
using namespace std ;
 const int N=51;
 int n,m,a[N][N],f[N][N][N][N];
 
 int MAX(int a,int b,int c,int d){
     if(a<b) a=b;
     if(c<d) c=d;
     if(a<c) a=c;
     return a;
 }
 int main(){
     int i,j,k,l;
     cin>>n>>m;
     for(i=1;i<=n;i++)
      for(j=1;j<=m;j++) 
      cin>>a[i][j];
     
    for(i=1;i<=n;i++)
     for(j=1;j<=m;j++)
      for(k=1;k<=n;k++)
       for(l=1;l<=m;l++){
    f[i][j][k][l]=MAX(
f[i][j-1][k-1][l],f[i][j-1][k][l-1],
f[i-1][j][k-1][l],f[i-1][j][k][l-1])+a[i][j]+a[k][l];
    
    if(i==k&&j==l) f[i][j][k][l]-=a[i][j];
    }  
    cout<<f[n][m-1][n-1][m];
 }
 

 

posted on 2022-12-03 13:29  towboat  阅读(30)  评论(0)    收藏  举报