杭电数塔
#include<iostream>
using namespace std;
//这是DP入门题,得找动态方程
int max(int a,int b){
return (a>b)?a:b;
}
int main(){
int c;
cin>>c;
int dp[105][105];
while(c--){
int n;
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
cin>>dp[i][j];
}
}
//从底部遍历
for(int i=n-1;i>=1;i--){
for(int j=1;j<=i;j++){
dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]);
}
}
cout << dp[1][1] << endl;
}
return 0;
}