AcWing 1015. 摘花生
原题链接
简单
作者:
牛奶小柒Luke
,
2021-03-10 21:29:23
,
所有人可见
,
阅读 267
看最后一步是从上面下来还是从左边下来
最后一步从上面下来:f[i - 1,j] + w[i,j]
左后一步从左边下来:f[i,j - 1] + w[i,j]
#include <iostream>
#include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std;
const int N = 110;
int n,m;
int w[N][N];
int f[N][N];
int main(){
int T;
scanf("%d",&T);
while(T--){
scanf("%d%d",&n,&m);
for(int i = 1;i <= n;++i){
for(int j = 1;j <= m;++j){
scanf("%d",&w[i][j]);
}
}
memset(f,0,sizeof f);
for(int i = 1;i <= n;++i){
for(int j = 1;j <= m;++j){
f[i][j] = max(f[i - 1][j],f[i][j - 1]) + w[i][j];
}
}
printf("%d\n",f[n][m]);
}
return 0;
}