钢条切割

Serling公司购买长钢条,将其切割为短钢条出售。切割工序本身没有成本支出。公司管理层希望知道最佳的切割方案。假定我们知道Serling公司出售一段长为i英寸的钢条的价格为pi(i=1,2,…,单位为美元)。钢条的长度均为整英寸。

| 长度i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | - | - | - | - | - | - | - | - | - | - | 价格pi | 1 | 5 | 8 | 9 | 10 | 17 | 17 | 20 | 24 | 30 |

钢条切割问题是这样的:给定一段长度为n英寸的钢条和一个价格表pi(i=1,2,…n),求切割钢条方案,使得销售收益rn最大。注意,如果长度为n英寸的钢条的价格pn足够大,最优解可能就是完全不需要切割。
动态规划

#include<iostream>
using namespace std;
int n,w;
int length[]={0,1,5,8,16,10,17,17,20,24,30};
int value[300]={0};
int f(int x)
{int ans=0;if(x<=0)return 0;for(int i=1;i<=10&&i<=x;i++){if(value[x-i]==0)value[x-i]=f(x-i);ans=max(length[i]+value[x-i],ans);}value[x]=ans;return ans;
}
int main()
{int w;cin>>w;f(w);for(int i=0;i<=w;i++)cout<<value[i]<<endl;return 0;
}

dp

#include<iostream>
using namespace std;
int length[]={0,1,5,8,16,10,17,17,20,24,30};
int value[300];
int main()
{int w;cin>>w;for(int i=1;i<=w;i++){for(int j=1;j<=10&&j<=i;j++){value[i]=max(length[j]+value[i-j],value[i]);}}cout<<value[w];return 0;
}

C/C++之钢条切割相关推荐

  1. 《算法导论》中动态规划求解钢条切割问题

    动态规划算法概述 动态规划(dynamic programming)1是一种与分治方法很像的方法,都是通过组合子问题的解来求解原问题.不同之处在于,动态规划用于子问题重叠的情况,比如我们学过的斐波那契 ...

  2. 钢条分割 动态规划java_【动态规划】初识,钢条切割问题

    正文之前其实动态规划老早之前就看过, 但是可惜的是印象不深,到今天彻底忘得差不多了,这两天看<算法导论>终于让我啃下了二叉搜索树和红黑树两个家伙,虽然还未曾熟练于胸,但是基本能用了...现 ...

  3. 动态规划法(五)钢条切割问题(rod cutting problem)

      继续讲故事~~   我们的主人公现在已经告别了生于斯,长于斯的故乡,来到了全国最大的城市S市.这座S市,位于国家的东南部,是全国的经济中心,工商业极为发达,是这个国家的人民所向往的城市.这个到处都 ...

  4. 动态规划,java实现算法导论15章钢条切割

    来自浙江理工大学在读研究生Yuner: github地址 个人博客地址 此问题dp式 :rn = max(pi + r(n-1)) 不使用dp,用普通的递归方式来求解 //使用普通的方法来计算钢条切割 ...

  5. 动态规划经典例题:钢条切割

    一.递归算法 如果在第i个地方切割,就把钢条分为两个长度为i,n-i的钢条,问题转化为求这切割两个钢条的最大价值之和 考虑到不切割时的价值 只要比较不切割时的价值和所有切割情况价值和的最大值即可 递归 ...

  6. 《算法导论》学习(十七)----动态规划之钢条切割(C语言)

    文章目录 前言 一.钢条切割问题 1.问题背景 2.问题描述 3.问题的难点 (1)情况较多 (2)消除重复子问题 二.问题解决方案 1.问题的特点 (1)最优化子结构 (2)重复子问题 2.最优化解 ...

  7. 动态规划 — 钢条切割问题

    动态规划: 什么是动态规划? 动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息.在求解任一子问题时 ...

  8. 动态规划:钢条切割问题

    一.题目 钢条切割问题 是<算法导论>一书中介绍动态规划时的一道引题.即: 某公司购买长钢条,将其切割为短钢条出售.假设切割工序没有成本支出,已知长度为 i 的钢条出售价格为 pi ,钢条 ...

  9. 钢条切割问题(动态规划)

    钢条切割问题-动态规划 问题描述 问题分析 定义 递推公式: 算法实例 伪代码 代码实现 问题描述 某公司购买长钢条,将其切割为段钢条出售.切割工序本身没有成本支出.公司管理层希望知道最佳的切割方案. ...

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

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

最新文章

  1. 用正则表达式替换示例
  2. 随着加密货币市场稳定 比特币价格不可避免的会下降
  3. SEAM学习(一)-----安装运行example
  4. K-means算法和矢量量化
  5. 苹果修复三个已遭利用的 iOS 0day
  6. .NET Core 中 IOptions 有什么用
  7. [转]Git使用基础篇
  8. 破解iOS微信骰子和猜拳
  9. 《我的人生哲学:马云献给年轻人的12堂人生智慧课》读后感
  10. 1072: 分解质因子
  11. 十年饮冰鸿蒙将至,咕哒:十年饮冰难凉热血 十年头牌阿联可称忠烈
  12. 普通投资者如何进行量化投资
  13. kotlin开发Android入门篇一
  14. oracle删除违反完整约束条件,ORA-02291: 违反完整约束条件 - 未找到父项关键字
  15. 【RVM预测】基于粒子群算法优化相关向量机RVM实现数据回归预测附matlab代码
  16. 视频素材剪辑制作的方法分享
  17. java接口,设计一个动物声音模拟器
  18. ELF文件中的各个节区
  19. 大牛都会用的IDEA调试技巧!!!
  20. 牛客网《直通BAT面试算法精讲课》优惠码

热门文章

  1. 使用HTML实现一个静态页面(含源码)
  2. 第6章第1节:基本设计理论:幻灯片设计过程中的七个常见技巧 [PowerPoint精美幻灯片实战教程]
  3. Basic Concepts in Graphics and Architecture
  4. PHP7.0微信公众平台开发4: 实例一:接收普通消息和接收事件推送
  5. Eclipse中LogCat打印出错信息分析
  6. 小白如何入门单片机?几个建议助你提高学习效率,把握学习方向
  7. 人工智能时代特征初步显现,主要体现在哪几个方面?
  8. ddddocr 汉字位置识别
  9. Python-爬虫-requests库用语post登录
  10. 跳转饿了么小程序、跳转美团小程序、获取小程序路径、小程序生成小程序码不能选择第三方小程序、领红包功能开发(附源码)