# include<bits/stdc++.h>usingnamespace std;constint N =510;constint INF =1E9+10;int a[N], dp[N];intmain(){
ios::sync_with_stdio(0);int n;
cin>>n;for(int i =0; i <= n; i ++)dp[i]=-INF;
dp[1]=0;for(int i =1; i <= n; i ++){
for(int j =1; j <= i; j ++) cin>>a[j];for(int j = i; j >=1; j --) dp[j]=max(dp[j],dp[j-1])+a[j];}int res =-INF;for(int i =1; i <= n; i ++) res =max(res,dp[i]);
cout<<res<<endl;return0;}
AC2(从后往前dp)
# include<bits/stdc++.h>usingnamespace std;constint N =510;int dp[N][N];intmain(){
ios::sync_with_stdio(0);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;return0;}