DP最最基础的题型:数字塔问题

题意 有一个n层逐层个数递加的三角数字塔,从塔顶开始向下走,每次只能向左半格或向右半格走,问走到塔底的路程上的数的和最大是多少。

        73   88   1   02   7   4   4
4   5   2   6   5

这时,7→3→8→7→5最大,为30.

输入样例

5(n)

7

3 8

8 1 0

2 7 4 4

4 5 2 6 5

输出样例

30

思路 这是一道DP基础题。不难看出,到每个点为止的最优解,就是这个点的值加上其左下方和右下方的最大值。最下面的一行的最优解就是其本身,由此一行一行向上推,直到推到最上面的那个点,也就是答案了。

代码如下

//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ那些年错过的大雨、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ全部还给出题的你、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、田神AK专场 签到专用、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ
//ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽ、ヽヽ、ヽ、ヽ#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <sstream>
#include <cmath>
#include <cctype>
#include <stack>//栈
#include <queue>//队列
#include <set>//集合
#include <map>//映射
#include <vector>//不定长数组
#include <algorithm>
using namespace std;
#define ll long long
const double pi = 4*atan(1.0);
int gcd(int a,int b)    {return b == 0? a:gcd(b,a%b);}
int lcm(int a,int b)    {return a/gcd(a,b)*b;}
const int maxn = 110;
int dp[maxn][maxn];
int main()
{int n;scanf("%d",&n);//n层,第几层就有几个数for(int i = 1 ; i <= n ; i ++){//i循环行,j循环列for(int j = 1 ; j <= i ; j ++) scanf("%d",&dp[i][j]);//这里从1开始使用数组会比较方便,而且便于理解}for(int i = n-1 ; i >= 1 ; i --){//i循环行(从下往上) j循环列for(int j = 1 ; j <= i ; j ++) dp[i][j] += max(dp[i+1][j],dp[i+1][j+1]);//到[i][j]为止的最优解就是[i+1][j]的最优解和[i+1][j+1]的最优解的最大值再加上[i][j]值本身}printf("%d\n",dp[1][1]);//一直推到最上面,自然就是最优解了return 0;
}

POJ1163 The Triangle相关推荐

  1. ICPC程序设计题解书籍系列之九:罗勇军《算法竞赛入门到进阶》

    罗书<算法竞赛入门到进阶>题目一览 第1章 算法竞赛概述 HDU1000 HDU1089-HDU1096 A+B for Input-Output Practice (I)-(VIII)( ...

  2. 湖南省第十届蓝狐网络杯大学生计算机程序设计竞赛,2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解...

    2019年湖南省大学生计算机程序设计竞赛 (HNCPC2019) 简要题解 update10.01 突然发现叉姐把这场的题传到牛客上了,现在大家可以有地方提交了呢. 不知道该干什么所以就来水一篇题解 ...

  3. [JS][C++]两题斐波那契数列:上台阶、triangle

    上台阶 时间限制: 3000MS 内存限制: 589824KB 题目描述: 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法. ...

  4. 设计一个扩展自抽象类geometricobject的新的triangle类_C++ 接口(抽象类)

    C++ 接口(抽象类) 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类中至 ...

  5. 帕斯卡三角形(Pascal's triangle)

    // The following code is compiled on VC2005 // #include "stdafx.h" /*--------------------- ...

  6. [leedcode 118] Pascal's Triangle

    Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Retu ...

  7. [LeetCode 120] - 三角形(Triangle)

    问题 给出一个三角形,找出从顶部至底部的最小路径和.每一步你只能移动到下一行的邻接数字. 例如,给出如下三角形: [ [2], [3,4], [6,5,7], [4,1,8,3] ] 从顶部至底部的最 ...

  8. D - Triangle Partition HDU - 6300 sort(cmp)

    D - Triangle Partition HDU - 6300 题解 由于三点不共线,且三角形不相交,则对坐标排序,输出 #include<bits/stdc++.h> using n ...

  9. Leetcode 118:Pascal's Triangle 杨辉三角

    118:Pascal's Triangle 杨辉三角 Given a non-negative integer numRows, generate the first numRows of Pasca ...

最新文章

  1. CentOS 8 即将停更,未来我们该何去何从?
  2. Linux┊理解devfs、sysfs、udev、tmpfs
  3. 深度学习(二十二)Dropout浅层理解
  4. 图形基础 GPU架构(5)并行计算
  5. LiveVideoStack Meet成都 生活与技术的“矛盾体”(内附资料下载)
  6. 26条C++的经典语录,哪几句戳中你的心!
  7. Windows Server 2012 R2安装体验
  8. 收藏 | PyTorch实现各种注意力机制
  9. 通配符(WildCard)与正则表达式(Regular Expression)
  10. python服务器搭建nginx_python服务器环境搭建Flask,uwsgi和nginx
  11. HDOJ HDU 1849 Rabbit and Grass ACM 1849 IN HDU
  12. 惊爆:各大 App 可直接打开小程序!微信收割移动互联网的时间开始了
  13. DIY audio player - 自定义audio播放器样式
  14. vscode java settings设置_vscode 搭建java环境
  15. 算法笔记(二)抽牌法产生随机全排列
  16. c语言算术转换例子,关于C语言算术表达式中“寻常算术转换”的问题
  17. html如何显示ppt首页,aspx怎样显示ppt转换的html页面
  18. vs2015下载路径
  19. Saas平台接入商户代小程序开发解决方案
  20. w7电脑蓝屏怎么解决_win7电脑蓝屏怎么解决

热门文章

  1. 手把手教你写一个基于python+pyqt5的股票盯盘软件
  2. linux内存不足导致tomcat宕机
  3. 面试完还呗、拼多多、蚂蚁金服、趣头条、京东到家之后,我知道了这些
  4. 报错Warning: ReactDOM.render is no longer supported in React 18.Use createRoot instead.Until you...
  5. Mybatis-04
  6. Python读写文件rb,wb,ab模式
  7. Python seek()和tell()函数详解
  8. 什么是RGB模式与BGR模式
  9. 计算机英语 病毒 教案,计算机病毒及其防治教案.doc
  10. DIV + CSS 学习笔记(盒模型)