标签:
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