//动态规划例题ppt p22 数字三角形 1.递归
#include<iostream>
#include<cstring>
using namespace std;
int n;
int array[5][5];int f(int r,int j)
{if(r==n-1){return array[r][j];}int num1=f(r+1,j);int num2=f(r+1,j+1);if(num1>num2){return num1+array[r][j];}else{return num2+array[r][j];}
}
int main()
{cin>>n; //5memset(array,0,sizeof(array));for(int i=0;i<n;i++){for(int j=0;j<=i;j++){cin>>array[i][j];}}cout<<f(0,0)<<endl;return 0;
}
//动态规划例题ppt p22 数字三角形 2.递归+备忘录,避免重复计算
#include<iostream>
#include<cstring>
using namespace std;
int n;
int array[5][5];
int maxsum[5][5]; //用来表示该位置有没有计算过,有就直接使用int f(int r,int j)
{if(r==n-1){return array[r][j];}if(maxsum[r+1][j]==-1)//没有就计算{maxsum[r+1][j]=f(r+1,j);}if(maxsum[r+1][j+1]==-1){maxsum[r+1][j+1]=f(r+1,j+1);}if(maxsum[r+1][j+1]>maxsum[r+1][j])  //直接使用计算过的{return maxsum[r+1][j+1]+array[r][j];}else{return maxsum[r+1][j]+array[r][j];}
}
int main()
{cin>>n; //5memset(array,0,sizeof(array));memset(maxsum,-1,sizeof(maxsum));for(int i=0;i<n;i++){for(int j=0;j<=i;j++){cin>>array[i][j];}}cout<<f(0,0);return 0;
}
//动态规划例题ppt p22 数字三角形 3.递推 自底向上计算最大路径,自上向下打印最终路径
#include<iostream>
#include<cstring>
using namespace std;
int array[5][5];
int array1[5][5];
int main()
{int n;cin>>n;memset(array,0,sizeof(array));for(int i=0;i<n;i++){for(int j=0;j<=i;j++){cin>>array[i][j];array1[i][j]=array[i][j];}}for(int i=n-2;i>=0;i--)     //自底向上计算,可以算出最大的路径长{for(int j=0;j<=i;j++){if(array[i+1][j]>array[i+1][j+1])//对左右两边的数字进行选择,较大的加上去{array[i][j]+=array[i+1][j];}else{array[i][j]+=array[i+1][j+1];}//cout<<array[i][j]<<" ";}//cout<<endl;}cout<<array[0][0]<<endl;cout<<"路径为:"<<array1[0][0]<<"--->";int m=0;for(int i=0;i<n-1;i++){for(int j=m;j<=i;j++){if(array[i+1][j]>array[i+1][j+1]){cout<<array1[i+1][j]<<"--->";m=j;break;}else{cout<<array1[i+1][j+1]<<"--->";m=j+1;break;}}}return 0;
}

动态规划: 数字三角形相关推荐

  1. 算法设计与分析——动态规划——数字三角形问题

    数字三角形问题 1.题目描述:给定一个由n行数字组成的数字三角形,如图3-7所示.设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. 算法设计:对于给定的由n行数字组成的数字 ...

  2. 七:动态规划-数字三角形

    问题: 数字三角形   问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜线向下或右斜线向下走: ●1&l ...

  3. 动态规划-数字三角形问题

    有一个由非负整数组成的三角形,第一行只有一个数,除了最下行之外每个数的左下方和右下方各有一个数. 1 3 2 4 10 1 4 3 2 20 从第一行的数开始,每次可以往左下或右下走一格,直到走到最下 ...

  4. 动态规划——数字三角形C语言

    一:分析 先说一下相关动态规划的一些概念,参考下方博文. 原文链接:https://blog.csdn.net/every__day/article/details/88174082 "一个 ...

  5. [AcWing] 1018. 最低通行费(C++实现)数字三角形模型

    [AcWing] 1018. 最低通行费(C++实现)数字三角形模型 1. 题目 2. 读题(需要重点注意的东西) 3. 解法 4. 可能有帮助的前置习题 5. 所用到的数据结构与算法思想 6. 总结 ...

  6. C++数字三角形问题(动态规划)

    一.问题描述 ★问题描述:给字一个由n行数字组成的数字三角形(等腰三角形).试设计一个算法,计算出从三角形的顶至底的一条路径,使该路径经过的数字总和最大. ★算法设计:对于给定的由n行数字组成的数字三 ...

  7. 数字三角形 计算最大路径 动态规划

    以所经过的权值之和最大值为例进行说明. 行进的过程中,每次只有两种选择:向左或向右.一个有n层的数字三角形的完整路径有2n条,所以当n比较大的时候,搜索全部路径,从中找出最大值,效率较低. 采用动态规 ...

  8. python--lintcode109.数字三角形(动态规划)

    描述 给定一个数字三角形,找到从顶部到底部的最小路径和.每一步可以移动到下面一行的相邻数字上. 如果你只用额外空间复杂度O(n)的条件下完成可以获得加分,其中n是数字三角形的总行数. 您在真实的面试中 ...

  9. 【算法】【动态规划篇】第3节:数字三角形问题

    本期任务:介绍算法中关于动态规划思想的几个经典问题 [算法][动态规划篇]第1节:0-1背包问题 [算法][动态规划篇]第2节:数字矩阵问题 [算法][动态规划篇]第3节:数字三角形问题 [算法][动 ...

  10. 经典算法——数字三角形的三种解题方法:递推、记忆化搜索、动态规划

    上题目链接: http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/1730.html  递推方法: i ...

最新文章

  1. CF1010F Tree
  2. 如何设计一个端计算架构?
  3. 互联网产品的灰度发布
  4. mybatis 多对多 处理
  5. Hibernate框架 五种查询方式
  6. matplotlib调整子图尺寸,消除大图白边框
  7. 前台页面通过ajax环境和js调用web service的几种方法
  8. Java面向对象程序设计--与C++对比说明:系列2(类机制)
  9. php动态柱形图,php生成柱状图(统计图)程序
  10. Chrome即将封杀Google Earth、Google Talk等插件
  11. 09-部署配置kubedns插件
  12. 解决svn文件图标不显示
  13. 数列求和再求极限问题
  14. Word删除页眉横线的方法
  15. 18位身份证的正则表达式并说明
  16. 基于全数字摄影测量工作站制作DOM简介
  17. 【文章导读】什么是旁道攻击?Meltdown Redux英特尔漏洞(MDS攻击);KAISER:从用户空间隐藏内核(KAISER);Meltdown/Spectre分析
  18. JavaScript:实现计算二维平面上两点之间的距离算法(附完整源码)
  19. ChaosBlade:混沌工程简介(一)
  20. 国医中药,人参神秘而又独特的地位

热门文章

  1. SELECT COUNT用法
  2. final关键字多态
  3. pdf阅读器修改背景颜色 护眼色
  4. Atitit recv https req post code 接受https请求// npm install axios// 安装依赖:npm install body-parse
  5. Atitit 大数据体系图 大数据 技术 数据采集 gui自动化 爬虫 Nui自动化  Ocr技术 Tts语音处理 文档处理(office zip等) html文档处理解析 转
  6. Atitit etl之道 attilax著 1. ETL 1 1.1. (数据仓库技术) 2 1.2. ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性和可获取性等几个特性
  7. paip.互联网产品要成功的要素
  8. paip.c++ qt C:\iwmake\build_mingw_opensource _Unwind_Resume的问题
  9. PAIP.在程序中设置壁纸墙纸
  10. paip.VS2010未能加载类型