动态规划之切钢条

Description

一家公司购买长钢条,将其切割成短钢条出售,切割本身没有成本,长度为i的短钢条的价格为Pi。那给定一段长度为n的钢条和一个价格表Pi,求钢条的切割方案使得收益Rn最大。
在这里插入图片描述

Input

输入钢条的长度n。

Output

输出获得的最大收益。

Sample Input

7

Sample Output

18

解题思路:

动态规划

对于长度为n的钢条,我们可以先切一刀,切下长度为1-10的钢条,共10种切法,
最大收益就是切下的钢条收益和剩下钢条的最大收益之和。

  1. 钢条长度为1的最大收益计算出来,保存到dp[1]

  2. 长度为2的钢条,遍历每一种切法,收益最大的保存到dp[2]

  3. 计算长度为n的钢条的最大收益,此时dp数组已经保存了1——n-1长度钢条的最大收益
    遍历这10中切法,就可以找到最大的收益

    由于每种钢条长度的最大收益都被保存在数组dp中,避免了很多的重复计算,

#include<iostream>
#include<cstring>
using namespace std;

int pi
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值