一维数组优化
#include<iostream>
using namespace std;
const int N=510;
int *maxsum;
int a[N][N];
int n;
int main()
{
cin>>n;
for(int i=1;i<=n;++i)
{
for(int j=1;j<=i;++j)
cin>>a[i][j];
}
maxsum=a[n];//从n-1层递推到第一层,并用最后一层存储答案,反正最后一层也没有 //用到
for(int i=n-1;i>=1;--i)
for(int j=1;j<=i;++j)
{
maxsum[j]=max(maxsum[j],maxsum[j+1])+a[i][j];
}
cout<<maxsum[1];
return 0;
}