C++ 代码
#include <iostream>
using namespace std;
const int N = 510;
int dp[N][N],w[N][N];
int n;
int main()
{
cin >> n;
for(int i = 1;i <= n;i ++)
for(int j = 1;j <= i;j ++)
cin >> w[i][j];
for(int i = 1;i <= n;i ++) dp[n][i] = w[n][i];
for(int i = n - 1;i >= 1;i --)
{
for(int j = 1;j <= i;j ++)
{
dp[i][j] = max(dp[i + 1][j] + w[i][j],dp[i + 1][j + 1] + w[i][j]);
}
}
cout << dp[1][1];
return 0;
}