钢材分段问题

#include<iostream>
#include<vector>
using namespace std; class Solution {
public:
int Bottom_To_Up_Cut_Rod(vector<int> p, int n) {
vector<int> r(n);
r[0] = 0;
int q = -65533; for(int i = 1; i <= n; i++) {
for(int j = 1; j <= i; j++) {
q = q > (p[j] + r[i - j]) ? q : (p[j] + r[i - j]);
}
r[i] = q;
} return r[n];
}
}; int main() {
int nums[] = {0, 1, 5, 8, 9, 10, 17, 17, 20, 24, 30};
int len = (int)sizeof(nums)/sizeof(int);
vector<int> p(len);
Solution so; for(int i = 0; i < len; i++) {
p[i] = nums[i];
} cout << "请输入钢材的长度:";
cin >> len;
cout << "最大收益为:" << so.Bottom_To_Up_Cut_Rod(p, len) << endl; return 0;
}

  上面代码中的 nums[] 中的数据代表的含义是指钢材长度从0~10不同长度的价格。

  一般动态规划用于求解一类最优解(一般可归类为求解最大值或最小值)的问题,这里以《算法导论》给的这个例子为引子作为深入对算法等的学习。代码很简洁明了,所以我就不多解释了。

Dynamic Programming(动态规划)的更多相关文章

  1. Dynamic Programming 动态规划入门笔记

    算法导论笔记 programming 指的是一种表格法,并非编写计算机程序 动态规划与分治方法相似,都是通过组合子问题的解来求解原问题.但是分治法将问题划分为互不相交的子问题.而动态规划是应用与子问题 ...

  2. 理解dynamic programming动态规划

    何谓动态规划? 以菲波那切数列为例, int fib(int n ){ if(n == 0 || n ==1){ return 1; }else{ return fib(n - 1) + fib(n ...

  3. [Dynamic Programming]动态规划之背包问题

    动态规划之背包问题 例题 现有4样物品n = ['a', 'b', 'c', 'd'],重量分别为w = [2, 4, 5, 3],价值分别为v = [5, 4, 6, 2].背包最大承重c = 9. ...

  4. 强化学习三:Dynamic Programming

    1,Introduction 1.1 What is Dynamic Programming? Dynamic:某个问题是由序列化状态组成,状态step-by-step的改变,从而可以step-by- ...

  5. 动态规划 Dynamic Programming

    March 26, 2013 作者:Hawstein 出处:http://hawstein.com/posts/dp-novice-to-advanced.html 声明:本文采用以下协议进行授权: ...

  6. [算法]动态规划(Dynamic programming)

    转载请注明原创:http://www.cnblogs.com/StartoverX/p/4603173.html Dynamic Programming的Programming指的不是程序而是一种表格 ...

  7. 动态规划Dynamic Programming

    动态规划Dynamic Programming code教你做人:DP其实不算是一种算法,而是一种思想/思路,分阶段决策的思路 理解动态规划: 递归与动态规划的联系与区别 -> 记忆化搜索 -& ...

  8. 以计算斐波那契数列为例说说动态规划算法(Dynamic Programming Algorithm Overlapping subproblems Optimal substructure Memoization Tabulation)

    动态规划(Dynamic Programming)是求解决策过程(decision process)最优化的数学方法.它的名字和动态没有关系,是Richard Bellman为了唬人而取的. 动态规划 ...

  9. 详解动态规划(Dynamic Programming)& 背包问题

    详解动态规划(Dynamic Programming)& 背包问题 引入 有序号为1~n这n项工作,每项工作在Si时间开始,在Ti时间结束.对于每项工作都可以选择参加与否.如果选择了参与,那么 ...

随机推荐

  1. Python2中的列表推导式存在变量泄漏问题,在Python3中不存在

    列表推导式(list comprehension) Python2: >>> x = 'my homie' >>> dummy = [x for x in 'ABC ...

  2. android nfc功能开发

    链接:Android NFC开发详细总结   https://blog.csdn.net/zhwadezh/article/details/79111348 链接2:Android NFC功能 简单实 ...

  3. Linux动态库路径配置

    参考链接:https://blog.csdn.net/blade2001/article/details/32839937 为什么要关注动态库路径配置,是因为工作中遇到动态库依赖其他动态库,而其他动态 ...

  4. Excel数据可视化方法

    目录: Excel图表基础: 1.选择要为其创建图表的数据,如: 2.单击“插入”菜单中的“推荐的图表”(也可点击右下角的下拉箭头),点击后选择所有图表即可查看所有的图标类型 3.选择所要的图表,单击 ...

  5. 【前端基础之HTML】

    " 目录 一.HTML介绍 二.head内常用标签 三.body内常用标签 一.HTML介绍 1. web服务本质 from socket import socket, SOL_SOCKET ...

  6. 2020年一线大厂月薪35K的Python开发要求

    为什么程序员要在2020年学习Python? 如果你正在考虑学习 Python,但又不确定为什么要这样做的话,那么你可以看看以下的内容: 马蜂窝裁员竟然达到了40%, 前段时间猪厂.菊厂裁员被推到了风 ...

  7. ML 是什么意思?

    ML到底是什么意思? 1.(ML)machine language机器语言,makeup language.参见:ML语言: 通用的函数式编程语言. 2.(ML)machine learning,人工 ...

  8. JavaSE复习~基本语法规则

    java程序的基本结构 java程序的文件后缀为 .java 一个java文件中可以写许多内容,但有且只能有一个 public 修饰的 class 类(class)是Java程序中所有源代码的基本组成 ...

  9. 模块学习-shutil

    高级的 文件.文件夹.压缩包 处理模块 shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,可以部分内容 shutil.copyfile(s ...

  10. ARG 构建参数----Dockerfle文件的重用

    ARG 构建参数----Dockerfle文件的重用 格式:ARG <参数名>[=<默认值>] 构建参数和 ENV 的效果一样,都是设置环境变量. 所不同的是,ARG 所设置的 ...