题目
AC代码
#include<iostream> #include<cstring> #include<cmath> using namespace std; int map[110][110]; int main() { int n; cin>>n; while(n--) { int height; cin>>height; memset(map,0,sizeof(map)); for(int row=0;row<height;row++) { for(int line=0;line<=row;line++) { cin>>map[row][line]; } } for(int i=height-2;i>=0;i--) { for(int j=0;j<=i;j++) map[i][j]=max(map[i+1][j],map[i+1][j+1])+map[i][j]; } cout<<map[0][0]<<endl; } return 0; }
解题思路
数塔问题就是一个套路,从下面往上面求就行了