简写代码
2026-07-17 09:51:51
发布于:陕西
0阅读
0回复
0点赞
解:
#include<bits/stdc++.h>
using namespace std;
int m,n,a[55][55],f[105][55][55];
int main(){
cin>>m>>n;
for(int i=1;i<=m;i++)for(int j=1;j<=n;j++)cin>>a[i][j];
memset(f,0x80,sizeof f);
f[0][1][1]=0;
for(int k=1;k<=m+n-2;k++)for(int i=1;i<=m;i++)for(int p=1;p<=m;p++){
int j=k-i+2,q=k-p+2;
if(j<1||j>n||q<1||q>n)continue;
f[k][i][p]=max(max(f[k-1][i-1][p-1],f[k-1][i-1][p]),max(f[k-1][i][p-1],f[k-1][i][p]))+a[i][j]+a[p][q];
if(i==p)f[k][i][p]-=a[i][j];
}
cout<<f[m+n-2][m][m];
}
这里空空如也

有帮助,赞一个