玄关!只有样例过了
查看原帖
玄关!只有样例过了
891062
Ericzc楼主2024/10/16 22:24

各位大佬帮帮我吧!

本蒟蒻写的 DP 怎么都没跳出来呀!!!QWQ

#include<bits/stdc++.h>

using namespace std;

typedef long long LL;

int n,m;
int a[1010][1010];
int dp[1010][1010][3];


int main()
{
	freopen("number.in","r",stdin);
	freopen("number.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i = 1;i <= n;i ++)
	{
		for(int j = 1;j <= m;j ++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	dp[1][1][1] = dp[1][1][2] = dp[1][1][3] = a[1][1];
	for(int i = 1;i <= m;i ++)
	{
		for(int j = 1;j <= n;j ++)
		{
			dp[i][j][1] = max(dp[i][j - 1][1],max(dp[i][j - 1][2],dp[i][j - 1][3])) + a[i][j];
		}
		for(int j = 1;j <= n;j ++)
		{
			dp[i][j][2] = max(dp[i - 1][j][1],dp[i - 1][j][2]) + a[i][j];
		}
		for(int j = n;j >= 1;j --)
		{
			dp[i][j][3] = max(dp[i + 1][j][1],dp[i][j + 1][3]) + a[i][j];
		}
	}
	cout << max(dp[n][m][1],max(dp[n][m][2],dp[n][m][3]));
	return 0;
}
2024/10/16 22:24
加载中...