5 条题解

  • 0
    @ 2026-9-2 19:27:40
    # include <bits/stdc++.h>
    
    using namespace std;
    const int N=55;
    int n,m,a[N][N],dp[N][N][N][N];
    int main(){
    	cin>>n>>m;
    	for(int i = 1;i<=n;i++)
    		for(int j = 1;j<=m;j++)
    			cin>>a[i][j];
    	memset(dp,-0x3f,sizeof(dp));
    	dp[1][1][1][1]=0;
    	for(int i = 1;i<=n;i++)
    		for(int j = 1;j<=m;j++)
    			for(int k = i+1;k<=n;k++)
    				for(int l = 1;l<j;l++)
    				dp[i][j][k][l]=max({dp[i-1][j][k-1][l],dp[i-1][j][k][l-1]
    				,dp[i][j-1][k-1][l],dp[i][j-1][k][l-1]})+a[i][j]+a[k][l];
    	cout<<dp[n-1][m][n][m-1];
    	return 0;
    }
    

    信息

    ID
    186
    时间
    1000ms
    内存
    128MiB
    难度
    2
    标签
    递交数
    86
    已通过
    51
    上传者