题解
2023-08-17 08:54:17
发布于:广东
2阅读
0回复
0点赞
#include<bits/stdc++.h>
using namespace std;
int a[51][51],f[101][51][51];
int main()
{
int m,n;
cin>>m>>n;
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
cin>>a[i][j];
for(int i=2;i<=m+n-1;i++)
for(int j=max(1,i-n+1);j<=min(m,i);j++)
for(int k=max(1,i-n+1);k<=min(m,i);k++)
{
f[i][j][k]=max(max(f[i-1][j][k],f[i-1][j-1][k]),max(f[i-1][j][k-1],f[i-1][j-1][k-1]))+a[j][i+1-j]+a[k][i+1-k];
if(j==k) f[i][j][k]-=a[j][i+1-j];
}
cout<<f[n+m-1][m][m];
return 0;
}
这里空空如也
有帮助,赞一个