Dynamic Programming(动态规划)
2024-09-06 11:15:51
钢材分段问题
#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不同长度的价格。
一般动态规划用于求解一类最优解(一般可归类为求解最大值或最小值)的问题,这里以《算法导论》给的这个例子为引子作为深入对算法等的学习。代码很简洁明了,所以我就不多解释了。
最新文章
- 关于object和embed
- 开启gpu加速的高性能移动端相框组件!
- iOS 推送通知处理
- #iPhone6与iPhone6Plus适配#如何在Xcode 6中创建 PCH 文件
- Python批量读取人脸图片与数据互相转换
- 从医生看病和快餐店点餐理解Node.js的事件驱动
- 前端--关于javascript对象
- 在ubuntu10.0.4下更新git
- C++的for循环细节,必看!
- 【夸QT在十五】ctkPluginFrameWork插件系统Windows编译器
- js实例--js滚动条缓慢滚动到顶部
- Linux 软件包安装管理
- 基于 Koa.js 平台的 Node.js web 快速开发框架KoaHub.js demo 可安装
- 静态html制作之psd转html
- Chrome Dev Tools: Code Folding in CSS and Javascript for improved code readiability
- SqlServer 更改数据库名称
- Django-配置、静态文件与路由
- 20155334 曹翔 《网络对抗》逆向及Bof基础
- 企业私有云部署im,视频服务
- python内置函数 eval()、exec()以及complie()函数
热门文章
- django 模版查找路径
- JAVA基础学习(4)之循环控制
- 201771010135 杨蓉庆AND张燕 《面对对象程序设计(java)》第十一周学习总结
- Move-to-front(MTF) and Run-lenght encoding(RLE) algorithms
- JS-apply、call、bind
- 【笔记4-商品模块】从0开始 独立完成企业级Java电商网站开发(服务端)
- php mongdb driver 1.17
- Springboot学习:核心配置文件
- 《如何写好商业计划书》---创业学习---训练营第三课---HHR---
- windows下的环境搭建配置redis