计算从三角形的顶到底的一条路径,使得该路径经过的数字总和最大
解题思路:自底向上逐层选择相加,动态规划
状态转移方程: t[i][j]=t[i][j]+max(t[i+1][j],t[i+1][j+1]); i=n-2,n-3,n-4.......,0. 0<=j<<i;
#include<iostream>
using namespace std;
int t[100][100];
int main()
{
int i,j,n;
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
cin>>t[i][j];
}
}
for(i=n-2;i>=0;i--)
{
for(j=0;j<=i;j++)
{
t[i][j]+=max(t[i+1][j],t[i+1][j+1]);
}
}
cout<<t[0][0]<<endl;
return 0;
}