题目描述
摘花生
C++ 代码
#include<bits/stdc++.h>
using namespace std;
int n;
const int N=105;
int b[N][N];
int main()
{
cin>>n;
while(n--)
{
int x,y;
cin>>x>>y;
for(int i=0;i<x;i++)
for(int j=0;j<y;j++)
cin>>b[i][j];
for(int i=1;i<y;i++) b[0][i]+=b[0][i-1];//算出第0行
for(int i=1;i<x;i++) b[i][0]+=b[i-1][0];//算出第0列
//从(1,1)开始计算
for(int i=1;i<x;i++)
for(int j=1;j<y;j++)
{
int value1=b[i-1][j]+b[i][j];//向右
int value2=b[i][j-1]+b[i][j];//向下
b[i][j]=max(value1,value2);
}
cout<<b[x-1][y-1]<<endl;
}
return 0;
}