
1 5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
30
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main(){
int t,n,i,j;
int dp[101][101],a[101][101];
scanf("%d",&t);
while(t--){
cin>>n;
for(i=0;i<n;++i){
for(j=0;j<=i;++j){
scanf("%d",&a[i][j]);
}
}
for(j=0;j<n;++j)dp[n-1][j]=a[n-1][j];
for(i=n-1;i>=0;--i){
for(j=0;j<=i;++j){
dp[i][j]=a[i][j]+max(dp[i+1][j],dp[i+1][j+1]);
// printf("i%d j%d %d",i,j,dp[i][j]);
}
// putchar('\n');
}
printf("%d\n",dp[0][0]);
}
return 0;
}
原文:http://blog.csdn.net/zp___waj/article/details/46495221