此题用动态规划,从f[1][1]开始,判断左边和上面,最后输出f[r][c]。
include [HTML_REMOVED]
include [HTML_REMOVED]
using namespace std;
int f[110][110],a[110][110];
int t,r,c;
int main(){
cin>>t;
for(int x=1;x<=t;x){
cin>>r>>c;
for(int i=1;i<=r;i){
for(int j=1;j<=c;j++){
cin>>a[i][j];
f[i][j]=max(f[i-1][j],f[i][j-1])+a[i][j];
}
}
cout<<f[r][c]<<endl;
}
}