埃斯比博士,救救我
查看原帖
埃斯比博士,救救我
990027
Rain2012楼主2024/11/30 10:17
#include<bits/stdc++.h>
using namespace std;
long long n,m,a[55][55],dp[55][55][55][55],vis[55][55];
int main()
{
    cin>>n>>m;
    for(long long i = 1;i <= n;i++)
    {
    	for(long long j = 1;j <= m;j++)
    	{
    		cin>>a[i][j];
		}
    }
    for(long long i = 1;i <= n;i++)
    {
        for(long long j = 1;j <= m;j++)
        {
            for(long long k = 1;k <= n;k++)
            {
                for(long long y = 1;y <= m;y++)
                {
                	dp[i][j][k][y] = max(dp[i-1][j][k-1][y],max(dp[i-1][j][k][y-1],max(dp[i][j-1][k-1][y],dp[i][j-1][k][y-1])));
                    if(i == k && j == y) continue;
                    dp[i][j][k][y] = max(dp[i-1][j][k-1][y],max(dp[i-1][j][k][y-1],max(dp[i][j-1][k-1][y],dp[i][j-1][k][y-1])))+a[i][j]+a[k][y];
                    //cout<<i<<","<<j<<" "<<k<<","<<y<<" : "<<dp[i][j][k][y]<<endl;
                }
            }
        }
    }
    cout<<dp[n][n][n][n];
}//60分 疑似神奇爆0
2024/11/30 10:17
加载中...