求大佬相助
查看原帖
求大佬相助
943081
TianHaolin楼主2025/8/5 16:30

救命啊!!!

代码竟然没有过样例

#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;
}

求大佬相助

2025/8/5 16:30
加载中...