4 条题解

  • 0
    @ 2023-12-10 20:47:50
    #include<bits/stdc++.h>
    using namespace std;
    const int N=55;
    int m,n,a[N][N],dp[N][N][N];
    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<=m;k++){
                    int l=i+j-k;
                    if(l>=1&&l<=n) {
                        int temp=max(max(dp[i-1][j][k-1],dp[i-1][j][k]),max(dp[i][j-1][k-1],dp[i][j-1][k]));
                        dp[i][j][k]=temp+a[i][j];
                        if(i!=k) dp[i][j][k]+=a[k][l];
                    }
                }
        cout<<dp[m][n][m]<<endl;
        return 0;
    }
    

    信息

    ID
    186
    时间
    1000ms
    内存
    128MiB
    难度
    3
    标签
    递交数
    74
    已通过
    42
    上传者