摘花生
线性dp
C++ 代码
/*摘花生 线性dp*/
#include<iostream>
#include<cstring>
using namespace std;
const int N=110;
int f[N][N],w[N][N];
int main()
{
int T;cin>>T;
while(T--){
int r,c;
cin>>r>>c;
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
cin>>w[i][j];
}
}
for(int i=1;i<=r;i++){
for(int j=1;j<=c;j++){
f[i][j]=max(f[i-1][j],f[i][j-1])+w[i][j];
}
}
cout<<f[r][c]<<"\n";
}
return 0;
}