一、递归算法

如果在第i个地方切割,就把钢条分为两个长度为i,n-i的钢条,问题转化为求这切割两个钢条的最大价值之和

考虑到不切割时的价值

只要比较不切割时的价值和所有切割情况价值和的最大值即可

递归出口:

当长度为0,返回0

递推式

结果=max(钢条不切割时的价值,钢条切成两半的价值)

递归计算出这两半的价值(子问题独立)

钢条切割的地方可以在第1个,第2个,第n/2个位置(之后对称)

 代码:

const int price[] = { 0,1,5,8,9,10,17,17,20,24,30 };int max_price(const int *p,int n)//求长度为n英寸切割方案的最大价值{if (n == 0){return 0;}int q = p[n];//不切割价值for (int i = 1; i <= n / 2; i++){q = max(q,max_price(p,i)+max_price(p,n-i));}return q;}

二.动态规划


代码:

const int price[] = { 0,1,5,8,9,10,17,17,20,24,30 };int max_price(const int *p,int n)//求长度为n英寸切割方案的最大价值{int dp[11];dp[0] = 0;for (int i =1; i<=10; i++){int m = 0;for (int j = 1; j <=i; j++){m = max(m,dp[i-j] + price[j]);}dp[i] = m;}return dp[n];}

动态规划经典例题:钢条切割相关推荐

  1. ヾ(o◕∀◕)ノヾ各种动态规划经典例题(新手向、多类型)

    ヾ(o◕∀◕)ノヾ各种动态规划经典例题(新手向.多类型) 一.前言 ヾ(・ω・`。)我把比较常见的类型的动态规划找了一些经典的例题,适合作为新手的入门例题,用于帮助我们对各种不同的动态规划有所了解,很 ...

  2. 算法复习——动态规划篇之钢条切割问题

    算法复习--动态规划篇之钢条切割问题 以下内容主要参考中国大学MOOC<算法设计与分析>,墙裂推荐希望入门算法的童鞋学习! 1. 问题背景 钢铁切割: ​ 现有一段长度为10的钢条,可以零 ...

  3. 《算法导论》15章-动态规划 15.1 钢条切割(含有C++代码)

    一.引入 动态规划方法通常用来求解最优化问题(optimizationproblem).这类问题可以有很多可行解,每个解都有一个值,我们希望寻找具有最优值(最小值或最大值)的解.我们称这样的解为问 题 ...

  4. 运筹说 第69期 | 动态规划经典例题讲解

    通过前几期的学习,我们已经学会了动态规划的基本概念和基本原理,并且掌握了动态规划模型的建立和具体的求解方法,本期小编带大家学习动态规划在经济管理中的应用. 除了前面讲到的最优路径.资源分配问题外,动态 ...

  5. 动态规划经典例题:乘积最大连续子数组

    题目: 输入一个整形数组,数组里有正数也有负数.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.例如数组:arr[]={1, 2, 3, -2, 4, -3 ...

  6. 动态规划经典例题-国王的金矿问题

    金矿问题 问题概述: 有一位国王拥有5座金矿,每座金矿的黄金储量不同, 需要参与挖掘的工人人数也不同.例如有的金矿储量是500kg黄金,需 要5个工人来挖掘:有的金矿储量是200kg黄金,需要3个工人 ...

  7. 动态规划经典例题解析

    一.不同路径问题 题目描述 一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为"Start" ). 机器人每次只能向下或者向右移动一步.机器人试图达到网格的右下角 ...

  8. 数字三角形(动态规划经典例题)

    资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 (图3.1-1)示出了一个数字三角形. 请编一个程序计算从顶至底的某处的一条路 径,使该路径所经过的数字的总和最大. ●每一步可沿左斜 ...

  9. 【动态规划·经典例题】鸡蛋的硬度

    鸡蛋的硬度 总时间限制: 1000ms 内存限制: 65536kB 描述 最近XX公司举办了一个奇怪(super strange!)的比赛:鸡蛋硬度之王争霸赛.参赛者是来自世 界各地的母鸡,比赛的内容 ...

最新文章

  1. 细数我们身边的人工智能之最
  2. 解析IBM TSM6.0版本特色功能与技术优势
  3. H5与Native交互之JSBridge技术
  4. python D5 字典
  5. 微信小程序 基础2【条件渲染、swiper组件、生命周期、发起请求API】
  6. 执行应用程序出现: No such file or directory
  7. 删除所有正在运行和退出的docker实例
  8. 产业区块链:新基建中的底层技术基座,各行业资深人士应积极参与建设
  9. XMPP核心协议客户端
  10. 3GPP定义的IMSnbsp;ECT业务与Conf…
  11. python函数参数值_python 函数参数
  12. Jquery 中 $('obj').attr('checked',true)失效的几种解决方案
  13. 【MMD】MikuMikuDance入门教程|下载模型动作相机场景音乐借物表
  14. Photoshop插件--删除暗调通道--脚本开发--PS插件
  15. 用什么 软件测试无线频段,Wirelessmon无线频段与信号强度扫描工具软件使用技巧...
  16. jmeter测试报告分析
  17. (转载自新华网)蓄势数载业初就 | 水下悬浮隧道项目一瞥
  18. Android WiFi系统【转】
  19. awd的批量脚本 pwn_北极星杯 awd复现
  20. 白鹭[egret]项目目录介绍)

热门文章

  1. 自定义数字格式字符串_部分分隔符和条件格式
  2. VC 播放WAV文件
  3. Bailian2855 计算概论(刘志敏老师班)ACM测试题1【椭圆】
  4. 杭电OJ分类题目(4)-Graph
  5. 51Nod-1049 最大子段和【DP】
  6. I00028 整数逆序
  7. NVIDIA 显卡信息(CUDA信息的查看)
  8. 面向项目(十)—— 头文件、源文件的组织
  9. Python 基础 —— time(时间,日期)
  10. 正定矩阵(positive definite matrix)