1、HDU-2084 数塔
2、链接:http://acm.hdu.edu.cn/showproblem.php?pid=2084
3、总结:从下往上推,最后归于顶点。方程为 dp[i][j] = max(dp[i+1][j],dp[i+1][j+1])+a[i][j]
#include#include #include #include #include #include using namespace std; #define LL long long #define INF 0x3f3f3f3fint main() {int c,dp[110][110],a[110][110],n;scanf("%d",&c);while(c--){scanf("%d",&n);for(int i=0;i )for(int j=0;j<=i;j++){scanf("%d",&a[i][j]);}for(int i=0;i 1;i++){dp[n][i]=0;}for(int i=n-1;i>=0;i--)for(int j=0;j<=i;j++){dp[i][j]=max(dp[i+1][j],dp[i+1][j+1])+a[i][j];}printf("%d ",dp[0][0]);}return 0; }