动态规划 钢条切割问题 两种方法 自底而上 自上而下的方法
来源:互联网 发布:在淘宝开店怎么取消 编辑:程序博客网 时间:2024/05/22 04:51
/*函数:动态规划 解决钢条切割问题两种方法 自底而上 自上而下的方法 一般自底而上的方法没有递归调用的开销,效率好些长度 1 2 3 4 5 6 7 8 9 10价格 1 5 8 9 10 17 17 20 24 30寻找方法将长度问n的钢管切割,使得价格最高.动态规划的方法保存子问题的结果,不必每次都求仔细安排求解顺序.时间:15.7.23Jason Zhou 热爱你所写下的程序,他是你的伙伴,而不是工具.*/#include<iostream>using namespace std;int find_max(int a,int b){ return (a<b) ? b:a;}int memoized_cut_rpd_aux(int p[],int n,int r[]){ int q=-1; if (n!=0 && r[n-1]>0) { return r[n-1]; } if (0==n) { q=0; return q; } else { for (int i=1;i<=n;i++) { q=find_max(q,p[i-1]+memoized_cut_rpd_aux(p,n-i,r)); } } r[n-1]=q; return q;}//自顶向下的法 保存子问题的解.int memoized_cut_rod(int p[],int n){ int len=sizeof(p)/sizeof(p[0]); int * r=new int[n]; for (int i=0;i<n;i++) { r[i]=-1; } memoized_cut_rpd_aux(p,n,r); cout<<"----------"<<endl; for (int i=0;i<n;i++) { cout<<" "<<r[i]; } cout<<endl; int q=r[n-1]; delete [] r; return q;}// 自底向上的方法int bottom_cut_rod(int p[],int n){ int *r=new int[n+1]; r[0]=0; for (int j=1;j<=n;j++) { int q=-1; for (int i=1;i<=j;i++) { q=find_max(q,p[i-1]+r[j-i]);//注意要保证 r[0]=0 } cout<<"---:q="<<q<<" j="<<j<<endl; r[j]=q; } int tmp=r[n]; delete [] r; return tmp;}int main(){ int p[]={1,5,8,9,10,17,17,20,24,30}; int len=sizeof(p)/sizeof(p[0]); //方法1 自上而下的方法 int q=memoized_cut_rod(p,10); cout<<"结果"<<q<<endl; //方法2 自下而上的方法 int m=bottom_cut_rod(p,10); cout<<"结果"<<m<<endl; return 0;}
0 0
- 动态规划 钢条切割问题 两种方法 自底而上 自上而下的方法
- 算法导论-第15章-动态规划:钢条切割问题自底向下方法C++实现
- 算法导论 动态规划 钢条切割问题的自底向上解法
- 动态规划-钢条切割问题
- 动态规划:钢条切割问题
- 【动态规划】钢条切割问题
- 动态规划--钢条切割问题
- 动态规划 钢条切割问题
- 动态规划 钢条切割问题
- 动态规划-钢条切割问题
- 动态规划之钢条切割问题自底向上发的实现(算法导论第15章)
- 动态规划 钢条切割问题的朴素解法
- 钢条切割-动态规划
- 切割钢条【动态规划】
- 动态规划-钢条切割
- 动态规划-钢条切割
- 动态规划-钢条切割
- 动态规划 钢条切割
- iOS前期OC训练OC_06字典
- 二分 hdu2141 Can you find it?
- 数据结构:图的存储结构之邻接矩阵(摘自网易云课堂)
- 【POJ】【2019】
- keil c51的内部RAM(idata)动态内存管理程序
- 动态规划 钢条切割问题 两种方法 自底而上 自上而下的方法
- 编写可变参数c函数
- 真是他们知道的哪个胆怯怯懦的龙景吗
- Should I normalize/standardize/rescale the data
- Codeforces Round #313 (Div. 2)D
- 15/7/23/文件输入输出/DOM/SAX
- Python Split函数的用法总结
- curl学习(实例不断总结)
- Snail—UI学习之UITextField