码迷,mamicode.com
首页 > 编程语言 > 详细

算法导论第十五章之钢条切割问题(自顶向下法)

时间:2014-12-15 20:22:04      阅读:272      评论:0      收藏:0      [点我收藏+]

标签:io   os   sp   for   on   问题   ef   as   size   

#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;
}

算法导论第十五章之钢条切割问题(自顶向下法)

标签:io   os   sp   for   on   问题   ef   as   size   

原文地址:http://blog.csdn.net/qq_22335577/article/details/41948173

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!