个人心得:动态规划是一种隶属于决策学的一个算法思想,他能够很好的解决多阶段决策问题,这种思想对于我们的生活还是科研都是必不可少的,

需要好生体会,学会动态方程的转移,做到具体问题具体分析。

那这简单题目来看吧,动态三角形,很明显从第一个开始就可以看出来第一个等于下面俩个对角线中最大与自己相加,所以可以用递归完成,

当然还有种更加巧妙的就是从后面往前面走,你可以很明显看到从倒数第二行开始他的最大值应该等于下俩个对角线中的最大值加上自己本身。

所以方程可以这么表示

DP[i][j]=max(DP[i+1][j],DP[i+1][j+1])+map[i][j];(1=<i<=n-1)这是从后面递推的

map[i][j] if(i==n)

dp(i,j)=

max(dp(i+1,j),dp(i+1,j+1))+map[i][j];这是递归方程式

73   88   1   02   7   4   44   5   2   6   5

(Figure 1)

Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.

Input

Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.

Output

Your program is to write to standard output. The highest sum is written as an integer.

Sample Input

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

Sample Output

30
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 #include<cstring>
 5 #include<iomanip>
 6 #include<algorithm>
 7 using namespace std;
 8 int mapa[105][105];
 9 int dp[105][105];
10 int n;
11 int dps(int x,int y){
12     if(dp[x][y]!=-1) return dp[x][y];
13     if(x==n)
14     {
15         dp[x][y]=mapa[x][y];
16         return dp[x][y];
17     }
18     return dp[x][y]=max(dps(x+1,y),dps(x+1,y+1))+mapa[x][y];
19
20 }
21 int main()
22 {
23     cin>>n;
24     for(int i=1;i<=n;i++)
25         for(int j=1;j<=n;j++)
26             dp[i][j]=-1;
27     for(int i=1;i<=n;i++)
28         for(int j=1;j<=i;j++)
29              cin>>mapa[i][j];
30         cout<<dps(1,1)<<endl;;
31
32 }


转载于:https://www.cnblogs.com/blvt/p/7349591.html

动态三角形(动态规划思想入门)相关推荐

  1. 数据结构与算法——动态规划思想解题三角形问题

    动态规划的基本思想 动态规划解题的时候将问题分解为几个不同的阶段(把原始问题分解为不同的子问题),自底向上计算.每次决策都依赖于当前的状态.我们可以将不同阶段的不同状态存储在一个二维数组中. 从这个二 ...

  2. 应用动态规划思想解决实际问题

    从概念和原理出发去学习某个知识点,往往有种晦涩.无从下手的感觉,本文列举两个示例,从实际应用的角度来理解"动态规划"思想. 数字三角形问题 "数字三角形"是动态 ...

  3. 从背包问题优化详解动态规划思想

    动态规划: 所有的数据结构与算法的理解必须建立在题目的练习上,否则看多少理论都没有实际用处!!! 所以下面这些理论文字看不懂通通没关系,跟随下面的背包问题还会跟深入的理解. 一.基本概念:任何数学递推 ...

  4. matlab三角形旋转动态,新手向!用WebGL写一个旋转的动态三角形,总共分三步!!(注释超详细!!)...

    html部分还是比较简单,引入的matrix.js是矩阵变换的一些方法,网上有很多,大家可以搜一搜(我的线性代数知识已经还给我的高数老师了,最近考虑着手捡起来) demo 下面是demo.js的代码 ...

  5. python动态规划算法最大k乘积_C语言使用DP动态规划思想解最大K乘积与乘积最大问题...

    最大K乘积问题设I是一个n位十进制整数.如果将I划分为k段,则可得到k个整数.这k个整数的乘积称为I的一个k乘积.试设计一个算法,对于给定的I和k,求出I的最大k乘积. 编程任务: 对于给定的I 和k ...

  6. 《PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)》示例源码课件教学视频免费下载

    #好书推荐##好书奇遇季#<PHP 7+MySQL 8动态网站开发从入门到精通(视频教学版)>京东当当天猫都有发售. PHP+MySQL的组合是目前世界上流行的Web开发工具,被大型互联网 ...

  7. PHP+MySQL+Dreamweaver动态网站建设从入门到精通

    < PHP+MySQL+Dreamweaver动态网站建设从入门到精通>是 电子工业出版社;出版的图书. 下载地址:http://download.csdn.net/download/qq ...

  8. 动态规划从入门到提升详解

    写在开头: 这篇博客将从最开始入门到提升,说明关于如何学习动态规划,适合小白以及学过想要提高的选手,篇幅可能较长持续更新,主要是为了带学弟学妹以及自己复习而写. 由于时间和篇幅等问题,一些基础的东西将 ...

  9. java编程思想 入门_java编程思想学习(基础)

    第一章 java介绍 1.编程的本质: 机器空间:解空间 问题空间:实际需要解决的业务问题,将该问题抽象化,在解空间中对问题建模. 编程就是建立问题空间和机器空间中的关联 面向对象编程思想: 1.万物 ...

最新文章

  1. Docker快速验证tomcat单机多实例方案
  2. vivado与modelsim的联合仿真(一)
  3. MySql级联删除和更新
  4. 数据分析系列剧第四集:行业研究报告与生产计划
  5. 计算机快捷键屏幕录制,屏幕录制软件哪个好用?设置电脑录屏快捷键
  6. 爱克发胶片_GE AGFA 胶片
  7. mysql表增加一行_数据库表增加一行数据
  8. mysql innodb 间隙锁_Mysql innodb 间隙锁
  9. UltraEdit键盘快捷键
  10. Matter-JS Render.create 渲染器创建
  11. Faster RCNN详解
  12. 下载Latex的IEEE模板
  13. 分区容错性和可用性的区别
  14. (知乎)男生 25 岁了,应该明白哪些道理?
  15. php怎么创建以太坊钱包地址,php如何调用以太坊JSON-RPC接口创建钱包
  16. PPT插入Excel图标,如果水平翻转做出漂亮逻辑图表?
  17. 古风系统仙侠文推荐_5本古典仙侠全本精品小说,文笔精湛,仙味十足,值得细品一二...
  18. 利用javascript写一个石头剪刀布的简易小游戏
  19. spark idea报错:json standard allows only one-top level
  20. MATLAB2020a WIN10安装教程

热门文章

  1. 仓库设置ower权限_中小企业都在用的免费多仓库管理软件
  2. IDEA Junit测试
  3. 第十四章_超参数调整
  4. count(1)与count(id)与count(*)效率,以及覆盖索引,索引下推
  5. 迁移至Kubernetes的三种主要方式对比
  6. 最短路径Dijkstra算法(邻接矩阵)
  7. 数据结构与算法14-栈和队列练习题
  8. AlloyTeam|腾讯全端 AlloyTeam 团队 - HTML5开源图像处理框架AlloyImage
  9. 《延世大学韩国语教程2》第二十课 办公室(上)
  10. EGO走进美团——追寻千亿市场背后的技术力量