社区讨论

玄关!只有样例过了

P7074[CSP-J 2020] 方格取数参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@m2byrkj8
此快照首次捕获于
2024/10/16 22:24
去年
此快照最后确认于
2025/11/04 17:02
4 个月前
查看原帖
各位大佬帮帮我吧!
本蒟蒻写的 DP 怎么都没跳出来呀!!!QWQ
CPP
#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;
}

回复

5 条回复,欢迎继续交流。

正在加载回复...