代码竟然没有过样例
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=205;
int n,m;
int dp[N][N][N],a[N][N];
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cin>>a[i][j];
}
}
memset(dp,-1,sizeof dp);
dp[2][1][1]=a[1][1];
for(int k=3;k<=n+m;k++)
{
for(int i=1;i<=n;i++)
{
for(int j=i+1;j<=n;j++)
{
int maxn=INT_MIN;
if(k-i<1||k-i>m||k-j<1||k-j>m)continue;
if(dp[k-1][i][j]!=-1) maxn=max(maxn,dp[k-1][i][j]);
if(dp[k-1][i-1][j]!=-1)maxn=max(maxn,dp[k-1][i-1][j]);
if(dp[k-1][i][j-1]!=-1)maxn=max(maxn,dp[k-1][i][j-1]);
if(dp[k-1][i-1][j-1]!=-1)maxn=max(maxn,dp[k-1][i-1][j-1]);
if(maxn==INT_MIN)continue;
dp[k][i][j]=maxn+a[i][k-i]+a[j][k-j];
}
}
}
cout<<dp[n+m][n-1][n];
return 0;
}
求大佬相助