从上向下累加最优子结构
#include <bits/stdc++.h>
using namespace std;
int main(){
int c;cin>>c;
while(c--){
int n;cin>>n;
int a[n+1][n+1]={0};
for(int i=1;i<=n;i++)
for(int j=1;j<=i;j++)
cin>>a[i][j];
for(int i=2;i<=n;i++)
for(int j=1;j<=i;j++)
a[i][j]+=max(a[i-1][j-1],a[i-1][j]);
int maxn=0;
for(int i=1;i<=n;i++)
if(a[n][i]>maxn) maxn=a[n][i];
cout<<maxn<<endl;
}
return 0;
}