标签:
2 5 1 1 2 3 4 5 4 2 2 5 3 1 5 3 10 1
1 3 6 10 15 7 8 13 21
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <iostream>
#include <algorithm>
#include <set>
#include <queue>
using namespace std;
const int inf=0x3f3f3f3f;
int dp[50010][10];
int t[50010][10];
int main()
{
int T,n,m,i,j;
int sum1,sum2;
scanf("%d",&T);
while(T--){
scanf("%d %d",&m,&n);
memset(dp,0,sizeof(dp));
memset(t,0,sizeof(t));
sum1=sum2=0;
for(i=0;i<m;i++)
for(j=0;j<n;j++)
scanf("%d",&t[i][j]);
for(i=0;i<m;i++){
sum1+=t[i][0];
dp[i][0]=sum1;
}
for(i=0;i<n;i++){
sum2+=t[0][i];
dp[0][i]=sum2;
}
for(i=1;i<m;i++)
for(j=1;j<n;j++)
dp[i][j]=max(dp[i-1][j],dp[i][j-1])+t[i][j];
for(i=0;i<m-1;i++)
printf("%d ",dp[i][n-1]);
printf("%d\n",dp[i][n-1]);
}
return 0;
}
标签:
原文地址:http://blog.csdn.net/u013486414/article/details/43449687