首页 > 代码库 > 算法导论第十五章之钢条切割问题(自顶向下法)
算法导论第十五章之钢条切割问题(自顶向下法)
#include<iostream> #include<time.h> using namespace std; #define inf -9999 int memorized_cut_rod_aux(int p[],int n,int r[]) { int q=0; if(r[n]>=0) { return r[n]; } else { //int q=inf; for(int i=1;i<=n;++i) { q=q>(p[i]+memorized_cut_rod_aux(p,n-i,r))?q:(p[i]+memorized_cut_rod_aux(p,n-i,r)); } //r[n]=q; //return q; r[n]=q; return q; } } int memorized(int p[],int n) { int *r=new int[n+1]; for(int i=0;i<n+1;++i) r[i]=inf; return memorized_cut_rod_aux(p,n,r); } int main() { const int size=9 ; int p[11]={0,1,5,8,9,10,17,17,20,24,30}; int sum=memorized(p,size); cout<<sum<<endl; system("pause"); return 0; }
算法导论第十五章之钢条切割问题(自顶向下法)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。