我就改了一下数组大小
我就把f数组的“51”全改成了“52”
然后就对了结果
#include<bits/stdc++.h>
using namespace std;
int m,n;
int a[51][51],f[52][52][52][52];
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
for(int k=1;k<=i+j;k++){
int l=i+j-k;
f[i][j][k][l]=max(f[i-1][j][k-1][l],max(f[i-1][j][k][l-1],max(f[i][j-1][k-1][l],f[i][j-1][k][l-1])))+a[i][j]+a[k][l];
if(i==k&&j==l) f[i][j][k][l]-=a[i][j];
}
}
}
cout<<f[m][n][m][n];
}