题目描述

给一条钢管,切割成不同长度的钢管(也可以不切割),不同的钢管长度对应不同的价值,求这根钢管获得的最大价值。

输入
第一行包含一个正整数L,为钢管的长度。

第二行包含L个正整数a1…aL,为长度从1到L的钢管对应的价值。

输出
输出一行,为钢管能获得的最大价值。

输入样例1

5
1 2 4 8 16

输出样例1

16

输入样例2

5
1 10 14 8 16

输出样例2

24

数据范围与约束

1<=a,L<=10000

思路分析

对于长度为L的钢管,把它分割成L个子问题,每一个长度为i(1<=i<=L)的子钢管为一个子问题。
对于每一个长度为i的钢管,从j处切割,遍历j从1到i,左边不再切割,右边可以进行切割,找最大的切割方式

AC代码

#include<stdio.h>
int value[10010];
int dp[10010]={0};
int max(int a,int b);
void cut_rod(int value[],int l);
int main()
{int i,l;scanf("%d",&l);for(i=1;i<=l;i++)scanf("%d",&value[i]);cut_rod(value,l);printf("%d",dp[l]);return 0;
}
void cut_rod(int value[],int l)
{int i,j,q;for(i=1;i<=l;i++){q=-1;for(j=1;j<=i;j++)q=max(q,value[j]+dp[i-j]);dp[i]=q;}
}
int max(int a,int b)
{return a>b?a:b;}

动态规划—钢管切割问题相关推荐

  1. 动态规划——钢管切割最小代价问题

    一.问题描述: 设有一根长度为L的钢条,在钢条上标有n个位置点(p1,p2,......,pn).现在需要按钢条上标注的位置将钢条切割为n+1段,每次切割的代价为所切的钢条长度,试求在所有的切割方案中 ...

  2. 【算法导论】动态规划之“钢管切割”问题

    动态规划,其实跟分治法有些相似,基本思想都是将复杂的问题分成数个简单的子问题,然后再去解决.它们的区别在于,分治法关注的子问题不相互"重叠",而动态规划关注的子问题,多是相互&qu ...

  3. Day2补充:钢管切割问题

    转自:https://blog.csdn.net/cyp331203/article/details/42806159 Day2补充:钢管切割问题 一. 问题背景: 某公司生产长钢管,然后一般,会将钢 ...

  4. DP之钢管切割,最长回文字符串,最长公共子串

    在做LeetCode第3题的时候,用到了DP,但是自己对DP还是不了解,所以翻开算法导论,开始看动态规划喽,学好动态规划,走遍天下都不怕. 钢管切割 对于一根长n米的钢管,每个长度的价格不一样,对于长 ...

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

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

  6. 钢管切割 2018-2-5

    钢管切割原始问题: 某公司生产长钢管,然后一般,会将钢条切断,变成不同长度,然后去售卖.其中有个问题是,不同长度的钢管的售价是不一样的,但是它们并不是完全按照比例来,比如2米的钢管售价要比3米的钢管售 ...

  7. 算法导论 动态规划钢条切割问题 C语言

    动态规划钢条切割问题 动态规划(dynamic programming)与分治法类似.分治策略将问题划分为互不相交的子问题,递归求解子问题,再将子问题进行组合,求解原问题.动态规划应用于子问题重叠的情 ...

  8. 算法学习笔记----用动态规划解决钢管切割问题

    (说明:由于CSDN的博客中不能添加下标等特殊符号,所以部分内容使用截图的形式) 通过对问题进行高度抽象,现在我们的问题,就是要递归地求解r n 的最大值,下面采用的是一种自顶向下的递归方法: int ...

  9. 动态规划——钢条切割

    有一根钢条,和他的长度价格表,真么样切割才能使得售出的钢条收益最大. 不考虑钢条的切割损耗. 输入n 表示钢条的长度 价格表p[i] 表示长度为i的钢条出售的价格 ------------------ ...

最新文章

  1. 换个角度聊系统稳定性建设(2021版)
  2. xshell 图形化连接ubuntu
  3. unity如何停止不用字符串方式开启协程的方法
  4. 43、Java动态代理一——动态类Proxy的使用
  5. 报错,o.h.engine.jdbc.spi.SqlExceptionHelper : Data truncation: Data too long for column ‘verify_msg‘
  6. paip.c#.net未能找到任何资源
  7. c语言运行全屏,怎么用代码控制C源程序运行时窗口是全屏的?
  8. 省市县乡四级联动java代码,jQuery省市区街道四级联动代码
  9. android badgeview activity不显示,关于BadgeView遇到的一个奇怪的问题和解决办法
  10. 电阻的耐功率冲击与耐电压冲击
  11. 广东移动待遇及详细工作经历 (转)
  12. mysql c dll_libmysql_c.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家
  13. 卷积神经网络是如何实现不变性特征提取的?
  14. C语言——第三章:C语言程序设计
  15. TOMCAT服务器的安装与配置
  16. 使用PfamScan的API对蛋白结构域进行注释
  17. 【渝粤题库】陕西师范大学180209 金融学作业(专升本)
  18. Java 集合深入理解(9):Queue 队列
  19. 熊猫烧香的病毒制作源码
  20. 计算机网络技术毕业生实习报告_计算机网络专业毕业生实习报告

热门文章

  1. 菜单编写(VC_Win32)
  2. Windows7和Windows10设置屏保保护程序-冒泡
  3. Nginx中文域名配置
  4. 微信小程序上传图片至服务器Springboot接收格式的问题
  5. [转] 治脚气;;咽痒咳嗽;睡眠磨牙;;绝招治痔疮;;乳汁不足方;;;打呼噜;;男人一周补肾食谱;; (百年难遇的好偏方)...
  6. 搜索引擎快速排名的黑帽技术【揭秘SEO黑帽技术】
  7. 2022年终总结:给心一个立住的理由【失败后自我恢复、压力中自我拯救】
  8. 上三角矩阵判定-c++
  9. 字符编码--字符与数字的对应
  10. HTTPServerMock从手工到平台的演变