90pts求调
查看原帖
90pts求调
1046173
Frozen_H楼主2024/10/25 21:54
#include<bits/stdc++.h>

using namespace std; 

int n , m , w[55][55] , dp[110][55][55];

int main()
{
	cin >> n >> m;
	for (int i = 1;i <= n;i++)
	{
		for (int j = 1;j <= m;j++)
		{
			cin >> w[i][j];
		}
	}
	for (int i = 1;i <= n+m;i++)
	{
		for (int j = 1;j <= n;j++)
		{
			for (int k = j+1;k <= n;k++)
			{
				dp[i][j][k] = max(dp[i-1][j-1][k-1],dp[i-1][j][k]);
				dp[i][j][k] = max(max(dp[i][j][k],dp[i-1][j-1][k]),dp[i-1][j][k-1]);
				dp[i][j][k] += w[j][i-j] + w[k][i-k];
			}
		}
	}
	cout << dp[n+m-1][n-1][n];
	return 0;
}
2024/10/25 21:54
加载中...