社区讨论

样例不过求条

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

讨论操作

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

当前回复
0 条
当前快照
1 份
快照标识符
@mhju7o1j
此快照首次捕获于
2025/11/04 08:35
4 个月前
此快照最后确认于
2025/11/04 08:35
4 个月前
查看原帖
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
int n,m;
int a[1005][1005];
int dp[1005][1005][5];
signed main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++)
    	for(int j=1;j<=m;j++)
    		cin>>a[i][j];
    memset(dp,-0x3f3f3f,sizeof dp);
    for(int i=0;i<=n;i++)dp[i][0][1]=0,dp[i][0][2]=0;
    for(int j=0;j<=m;j++)dp[0][j][1]=0,dp[0][j][2]=0;
    for(int j=1;j<=m;j++){
    	for(int i=1;i<=n;i++)dp[i][j][1]=max(max(max(dp[i][j-1][1],dp[i][j-1][2]),dp[i-1][j][1])+a[i][j],dp[i][j][1]);
    	if(j!=1 and j!=m){
    		dp[n][j][2]=max(dp[n][j-1][1],dp[n][j-1][2])+a[n][j];
    		for(int i=n-1;i>=1;i--)dp[i][j][2]=max(dp[i+1][j][2],max(dp[i][j-1][1],dp[i][j-1][2])+a[i][j]);
		}
	}
	cout<<dp[n][m][1];
    return 0;
}

回复

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

正在加载回复...