钢条切割:递归+记忆化
2015-08-03 20:09
183 查看
#include<iostream> #include<algorithm> using namespace std; /* 给出长度为i的钢条对应的出售价格为pi, 问题: 给定一段长度为n的钢条怎么切才会使收益最大; 技巧:对于大量重复的子问题,我们采取记忆化,这样相比于之前大大节省了时间 */ int p[100]={0,1,5,8,10,13,17,18,22,25,30}; int r[100]; void memoized(){ for(int i=0;i<=100;i++){ r[i]=-10000; } } int cut(int n){ int q=-10000; if(r >0) return r ; if(n==0) q=0; else{ for(int i=1;i<=n;i++){ if((cut(n-i)+p[i])>q){ q=cut(n-i)+p[i]; } } r =q; } return q; } int main() { int n; while(cin>>n){ cout<<cut(n)<<endl; } system("pause"); return 0; }
相关文章推荐
- 二维数组作为参数传递的问题
- HDOJ Square Coins 1398【母函数】
- iOS应用内置付费In-App Purchases入门
- iOS UI04_Touch
- 深入理解DIP、IoC、DI以及IoC容器
- 运用JS设置cookie、读取cookie、删除cookie
- mongodb分片原理
- Unable to load VirtualBox engine. Genymotion.安装问题
- (一〇四)使用Xcode6创建framework动态静态库
- 【八校联考2013】百团大战
- (一〇四)使用Xcode6创建framework动态静态库
- poj 3160 Father Christmas flymouse【强连通 DAG spfa 】
- leetcode 69: Sqrt(x)
- 字符编码
- 服务器中很多的CLOSE_WAIT
- jni 字符串转化为 char* 的方法
- javascript 没有块级作用域 JavaScript声明全局变量三种方式 及
- hdu 5329 Question for the Leader
- week6-week11
- 2015暑假训练赛团体赛(DLX+Trie模糊匹配+费用流)