NC213852. [CSP2020]方格取数(number)
描述
输入描述
第 1 行两个正整数 。
接下来 行每行 个整数,依次代表每个方格中的整数。
输出描述
一个整数,表示小熊能取到的整数之和的最大值。
示例1
输入:
3 4 1 -1 3 2 2 -1 4 -1 -2 2 -3 -1
输出:
9
说明:
示例2
输入:
2 5 -1 -1 -3 -2 -7 -2 -1 -4 -1 -2
输出:
-10
说明:
C++(clang++ 11.0.1) 解法, 执行用时: 236ms, 内存消耗: 12356K, 提交时间: 2022-10-03 12:10:53
#include<bits/stdc++.h> using namespace std; int a[1010][1010]; long long f[1010][1010]; int main() { int n,m; cin>>n>>m; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) cin>>a[i][j]; memset(f,-0x7f,sizeof(f)); long long ma; f[1][0]=0; for(int j=1;j<=m;j++) { ma=-1e18; for(int i=1;i<=n;i++) { ma=max(ma,f[i][j-1])+a[i][j]; f[i][j]=max(f[i][j],ma); } ma=-1e18; for(int i=n;i>=1;i--) { ma=max(ma,f[i][j-1])+a[i][j]; f[i][j]=max(f[i][j],ma); } } cout<<f[n][m]<<endl; return 0; }