NC230373. Palace
描述
现在小明站在起点 位置,他想走到目标点 处,规定小明每次只能向下或者向右移动(不限移动次数)。
问:小明从起点移动到目标点时总共可以拿走最多多少价值的物品,并输出该价值的大小。
输入描述
第行输入两个正整数和,表示宫殿的大小。第行每行输入个正整数,输入数据之间用空格隔开, 表示坐标 处的物品价值 。
输出描述
输出答案。
示例1
输入:
3 2 8 18 18 2 7 7
输出:
40
C 解法, 执行用时: 4ms, 内存消耗: 384K, 提交时间: 2022-03-31 19:53:04
#include<stdio.h> int a[101][101]; int main() { int n,m; scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) for(int j=1;j<=m;j++) { scanf("%d",&a[i][j]); int t=a[i-1][j]; if(a[i][j-1]>t) t=a[i][j-1]; a[i][j]=a[i][j]+t; } printf("%d",a[n][m]); return 0; }
C++ 解法, 执行用时: 7ms, 内存消耗: 568K, 提交时间: 2021-11-13 14:48:17
#include<bits/stdc++.h> using namespace std; int main(){ long long f[200][200],n,m;cin>>n>>m; for(int i=1;i<=n;i++)for(int j=1;j<=m;j++){ cin>>f[i][j];f[i][j]+=max(f[i-1][j],f[i][j-1]);} cout<<f[n][m]<<'\n';return 0; }