DP:钢条切割问题
2017-10-17 14:52
197 查看
某公司出售一段长度为i英寸的钢条价格为pi(i=1,2,...)。钢条长度为整英寸。价格表如程序段变量p给出。现在给定一段长度为n英寸钢条和价格表p,求切割方案,使得销售
收益r最大,注意如果长度为n英寸的钢条价格p足够大时,就不需要切割。
#include<iostream>#include<vector>using namespace std;vector<int>p{0,1,5,8,9,10,17,17,20,24,30}; //钢条价格表int memoized_cut_rod_aux(const vector<int>&p,int n,vector<int>&r){if(r>=0)return r;int q=0;if(n==0)q=0;else {q=-1;for(int i=1;i<=n;++i){q=max(q,p[i]+memoized_cut_rod_aux(p,n-i,r));}}r=q;return q;}int memoized_cut_rod(const vector<int>&p,int n){vector<int>r(n+1,-1);return memoized_cut_rod_aux(p,n,r);}int bottom_up_rod(const vector<int>&p,int n){vector<int>r(n+1,-1);r[0]=0;for(int j=1;j<=n;++j){int q=-1;for(int i=1;i<=j;++i){q=max(q,p[i]+r[j-i]);}r[j]=q;}return r;}int main(){cout<<memoized_cut_rod(p,6)<<endl;cout<<bottom_up_rod(p,6)<<endl;return 0;}
相关文章推荐
- 算法导论---DP之钢条切割问题
- 动态规划 钢条切割问题
- 动态规划问题之钢条切割
- 用动态规划算法求解钢条切割问题
- 动态规划_钢条切割问题
- 动态规划之钢条切割问题自底向上发的实现(算法导论第15章)
- 切割钢条问题
- 算法导论 动态规划 钢条切割问题的自底向上解法
- 动态规划算法 - 钢条切割问题
- [算法学习笔记]动态规划之钢条切割问题
- 动态规划 钢条切割问题 两种方法 自底而上 自上而下的方法
- 动态规划之钢条切割问题
- c++使用动态规划dp(自底向上)重构解决钢条切割输出最大收益和切割方案及运行实例结果
- 动态规划之0-1背包问题,钢条切割
- 动态规划 钢条切割问题的朴素解法
- 算法导论读书笔记之钢条切割问题
- 动态规划:钢条切割问题实现
- 钢条切割问题
- c++使用动态规划dp(自底向上)重构解决钢条切割输出最大收益和切割方案及运行实例结果
- 【算法导论学习-27】动态规划经典问题01:钢条切割的最大收益