算法导论——钢条切割问题

问题描述:

给定一个n英寸的钢条,及一个价格表pi<1,2,3,.......>,求解切割方案使得ri收益最大。

分析:

这是一个典型的动态规划问题。

算法导论——钢条切割问题_第1张图片

#include
#include
using namespace std;

#define INF 99999999


//自底向上的切割方案
void button_up_cut(int p[],int n,int r[],int s[])
{
	int q = -INF;
	r[0] = 0;//哨兵
	for(int i=1 ; i<=n ; i++)
	{
		for(int j=1 ; j<=i;++j)
		{
			if(q
测试代码



int main()
{
	int p[] = {0,1,5,8,9,10,17,17,20,24,30};
	int len = sizeof(p)/sizeof(p[0])-1;
	int r[len];
	int s[len];
	button_up_cut(p,len,r,s);
	
	for(int i=1 ; i<=len ; ++i)
	{
		printf("%d\t",r[i]);
	 } 
	 printf("s:\n");
	 for(int i=1 ;i<=len;++i)
	 {
	 	printf("%d\t",s[i]);
	 }
	
	
	return 0; 
}


你可能感兴趣的:(算法&数据结构)