从下往上搞
注意
1 注意dp从哪到哪
2 写崩了看看转移过程 没准知道自己怎么那啥的
#include <algorithm>
#include <iostream>
#include <sstream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <string>
#include <bitset>
#include <vector>
#include <queue>
#include <stack>
#include <cmath>
#include <list>
#include <map>
#include <set>
#include<iomanip>
#include <bits/stdc++.h>
/***************************************/
#define ll long long
#define int64 __int64
#define PI 3.1415927
#define INF 99999
const int maxn = 2010;
#define rep(i,n) for(int i=0;i<(n);i++)
using namespace std;
#define MAXN 3010
#define inf 0x3f3f3f3f;
int dp[1050];
int mp[1050][1050];
int main()
{int n;
cin>>n;
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
cin>>mp[i][j];
}
}
memset(dp,0,sizeof(dp));
for(int i=n-1;i>=0;i--)
{
for(int j=0;j<=i;j++)
{
dp[j]=max(dp[j],dp[j+1])+mp[i][j];
}
//cout<<dp[i]<<" ";
}
cout<<dp[0];
return 0;
}