题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1002
题意:中文题诶~
思路:简单dp
从底层往上递推,每个节点的最大和为当前节点的值加上两个儿子中较大的值;
状态转移方程式为:dp[i][j]=max(dp[i+1][j], dp[i+1][j+1])+a[i][j];
代码:
#include <bits/stdc++.h>
#define MAXN 510
using namespace std; int main(void){
int n, a[MAXN][MAXN], dp[MAXN][MAXN];
cin >> n;
for(int i=; i<n; i++){
for(int j=; j<=i; j++){
cin >> a[i][j];
}
}
memset(dp, , sizeof(dp));
for(int i=n-; i>=; i--){
for(int j=; j<=i; j++){
dp[i][j]=max(dp[i+][j], dp[i+][j+])+a[i][j];
}
}
cout << dp[][] << endl;
return ;
}