1 条题解
-
0
从 到 ,直接双层循环。我们计算 到 的最大距离和,因为只能向右或向下移动,所以 ,最终迭代得到的 即为答案
#include <bits/stdc++.h> typedef long long ll; ll a[1100][1100]; int main() { int n, m; std::cin >> n >> m; for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { std::cin >> a[i][j]; } } // 先预处理第一行和第一列的数据,处理边界情况 // 第一行 for (int i = 1; i <= m; i ++) a[1][i] += a[1][i-1]; // 第一列 for (int i = 1; i <= n; i ++) a[i][1] += a[i-1][1]; for (int i = 2; i <= n; i ++) { for (int j = 2; j <= m; j ++) { a[i][j] = a[i][j] + std::max(a[i-1][j], a[i][j-1]); } } std::cout << a[n][m] << std::endl; return 0; }
- 1
信息
- ID
- 106
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 4
- 标签
- 递交数
- 25
- 已通过
- 16
- 上传者