1 //简单的动态规划应用。。 2 #include<stdio.h> 3 int sum[100],a[100][100]; 4 int main() 5 { 6 int max(int x,int y); 7 int n,i,j,m; 8 while(~scanf("%d",&n)) 9 { 10 while(n--) 11 { 12 scanf("%d",&m); 13 for(i = 0; i < m; ++i) 14 for(j = 0; j <= i; ++j) 15 { 16 scanf("%d",&a[i][j]); 17 if(i==m-1) 18 sum[j]=a[i][j]; 19 } 20 for(i = m-2; i >= 0; --i) 21 for(j = 0; j <= i; ++j) 22 sum[j]=a[i][j]+max(sum[j],sum[j+1]); 23 printf("%d ",sum[0]); 24 } 25 } 26 } 27 28 int max(int x,int y) 29 { 30 int z; 31 z=x>y?x:y; 32 return z; 33 }