- 摘花生问题
w
- @ 2025-5-17 11:50:41
#include <bits/stdc++.h> using namespace std; const int MAXN = 100; int grid[MAXN][MAXN]; int dp[MAXN][MAXN]; int main() { int m, n; cin >> m >> n; for (int i = 0; i < m; ++i) { for (int j = 0; j < n; ++j) { cin >> grid[i][j]; } } dp[0][0] = grid[0][0]; for (int j = 1; j < n; ++j) { dp[0][j] = dp[0][j-1] + grid[0][j]; } for (int i = 1; i < m; ++i) { dp[i][0] = dp[i-1][0] + grid[i][0]; } for (int i = 1; i < m; ++i) { for (int j = 1; j < n; ++j) { dp[i][j] = max(dp[i-1][j], dp[i][j-1]) + grid[i][j]; } } cout << dp[m-1][n-1] << endl;
return 0;
}
1 条评论
-
bin @ 2025-7-30 13:29:03
#include<bits/stdc++.h> using namespace std; int a[105][105]; 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]; } } for(int i=1;i<=n;i++){ for(int j=1;j<=m;j++){ a[i][j]+=max(a[i-1][j],a[i][j-1]); } } cout<<a[n][m]; return 0; }
- 1
信息
- ID
- 71
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 6
- 标签
- 递交数
- 28
- 已通过
- 10
- 上传者