AcWing 1015. 摘花生
原题链接
简单
作者:
九凤白
,
2023-01-09 20:30:29
,
所有人可见
,
阅读 134
#include<iostream>
using namespace std;
int R,C;
int datas[200][200];
int dp[200][200];
//初始化0
void init(){
for(int i = 0;i<200;i++){
for(int j = 0;j < 200;j++){
datas[i][j] = 0;
dp[i][j] = 0;
}
}
}
//处理输入
void cinn(){
cin>>R>>C;
for(int i = 0;i<R;i++){
for(int j=0;j<C;j++){
cin>>datas[i][j];
}
}
}
//最值函数
int maxx(int a,int b){
return a>b?a:b;
}
//dp函数
int func(){
dp[0][0] = datas[0][0];
for(int i=0;i<R;i++){
for(int j=0;j<C;j++){
dp[i+1][j] = max(dp[i+1][j],dp[i][j]+datas[i+1][j]);
dp[i][j+1] = max(dp[i][j+1],dp[i][j]+datas[i][j+1]);
}
}
return dp[R-1][C-1];
}
//主函数
int main(){
int t;
cin >> t;
while(t--){
init();
cinn();
cout<<func()<<endl;
}
return 0;
}