hdu 2084 数塔

http://acm.hdu.edu.cn/showproblem.php?pid=2084
每个数的dp值
7
10 15
18 16 15
20 25 20 19
24 30 27 26 24
这是经典的dp

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int data[105][105];
int dp[105][105];//记一下dp值
int max(int m,int n)//写一下最大值的函数
{
    if(m>n)
     return m;
    return n;
}
int main()
{
    int T,m;
    cin>>T;
    while(T--)
    {
        cin>>m;
        memset(dp,0,sizeof(dp));
        for(int i=1; i<=m; i++)
           for(int j=1; j<=i; j++)
             cin>>data[i][j];
        for(int i=1; i<=m; i++)
        {
            for(int j=1; j<=i; j++)
            {
                dp[i][j]=max(dp[i-1][j-1],dp[i-1][j])+data[i][j];//找dp值
            }
        }
        int maxn=-999999;
        for(int i=1; i<=m; i++)
        {
            if(maxn<dp[m][i])
                maxn=dp[m][i];
        }
        cout<<maxn<<endl;
    }
    return 0;
}
时间: 2024-09-27 09:00:03

hdu 2084 数塔的相关文章

求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION)

问题描述 求教!简单的ACM数塔问题,出现Runtime Error(ACCESS_VIOLATION) 以下是代码,自己编译运行是对的 #include<stdio.h> int max(int a,int b) { if(a>b) return a; else return b; } int main() { int c,n,i,j; int a[100][100]; int b[100][100]; scanf("%d",&c); while(c--)

hdu2084 数塔【简单DP】

数塔 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 17241 Accepted Submission(s): 10340 Problem Description 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走到底层,若每一步只能走到相邻的结点,则经过的结点的数字之和最大是多少? 已经告诉

hdu2084数塔

经典问题了,题意我就不叙述了(题目是中文的~) 分析:dp[i][j]表示在第i行第j个位置上能取得的最大和,那么要从最后一行开始算起,到塔顶结束:dp[i][j] = a[i][j]+max(dp[i+1][j], dp[i+1][j+1]), 边界条件是dp[n][j] = a[n][j]; 代码: View Code 1 #include <stdio.h> 2 #include <iostream> 3 using namespace std; 4 #define DEBU

【DP专辑】ACM动态规划总结

转载请注明出处,谢谢.   http://blog.csdn.net/cc_again?viewmode=list          ----------  Accagain  2014年5月15日 动态规划一直是ACM竞赛中的重点,同时又是难点,因为该算法时间效率高,代码量少,多元性强,主要考察思维能力.建模抽象能力.灵活度. 本人动态规划博客地址:http://blog.csdn.net/cc_again/article/category/1261899 ******************

杭电ACM 2000-&amp;gt;2099 100道题 详细解题报告出炉

我去年暑假花了5天,把杭电ACM网站上2000到2099这100道题全AC了,又花了10来天精心写解题报告.里面包括题目.解题思路.编程技巧以及参考源码.所有代码都是使用C/C++写的. 最近整理资料时无意间发现,打包成chm文件和大家分享.我已经上传到CSDN上了.下载地址:http://download.csdn.net/source/492194 也可到我的Google Sites上下载. 题号 题名 题号 题名 2000 ASCII码排序 2001 计算两点间的距离 2002 计算球体积

五大常用算法 之 动态规划法

一.基本概念     动态规划过程是:每次决策依赖于当前状态,又随即引起状态的转移.一个决策序列就是在变化的状态中产生出来的,所以,这种多阶段最优化决策解决问题的过程就称为动态规划.     动态规划是运筹学中用于求解决策过程中的最优化数学方法.当然,我们在这里关注的是作为一种算法设计技术,作为一种使用多阶段决策过程最优的通用方法.它是应用数学中用于解决某类最优化问题的重要工具.     如果问题是由交叠的子问题所构成,我们就可以用动态规划技术来解决它,一般来说,这样的子问题出现在对给定问题求解

算法训练-动态规划基础

WIKIOI-1220 数字三角形 题目描述如图所示的数字三角形,从顶部出发,在每一结点可以选择向左走或得向右走, 一直走到底层,要求找出一条路径,使路径上的值最大.        7      3   8    8   1   0  2   7   4   4输入描述 Input Description 第一行是数塔层数N(1<=N<=100). 第二行起,按数塔图形,有一个或多个的整数,表示该层节点的值,共有N行. 输出描述 Output Description 输出最大值. 样例输入 S

printf-c语言的一道题 动态规划 新手,求大神看看我代码的问题

问题描述 c语言的一道题 动态规划 新手,求大神看看我代码的问题 描述 7 3 8 8 1 0 2 7 4 4 4 5 6 2 5 (图1) 图1显示了一个三角形数. 编写一个程序,计算最高金额的数字传递路线,从顶部开始和结束的地方固定在底座上. 每一步可以走斜向下向左或向右斜下. 输入 程序从标准输入读取. 第一行包含一个整数N:三角形的行数. 以下N行描述三角形的数据. 在三角形的行数> 1但< = 100. 三角形的数量,所有的整数,在0到99之间. 输出 你的程序是编写到标准输出. 最

HDOJ 1176

免费馅饼 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 13077 Accepted Submission(s): 4328 Problem Description 都说天上不会掉馅饼,但有一天gameboy正走在回家的小径上,忽然天上掉下大把大把的馅饼.说来gameboy的人品实在是太好了,这馅饼别处都不掉,就掉落在他身旁的10米范围内.馅