阅读背景:

动态规划求解01背包

来源:互联网 
/*writen by bojie*/
#include<iostream>
# include<cstring>
using namespace std;
# define max(a,b) a>b?a:b
struct Item
{
	int weight;
	int value;
	Item():weight(0),value(0){}
};

int max = 10;
int main()
{      Item *item = new Item[4];
	/*
	W V  all=10
	3,4
	4,5
	5,6
	*/
         int dp[100][1000];
	 memset(dp,0,sizeof(dp));
	for(int i=1; i!=4;++i)
	{
		item[i].value = i+3;
		item[i].weight = i+2;
		printf("%d %d\n",item[i].value,item[i].weight);
	}

	for(int i = 0; i <= 3;++i)
{
	for(int j = 0; j <= 10;++j)
	if(j >= item[i].weight)
	{
	dp[i][j] = max(dp[i-1][j],dp[i-1][j-item[i].weight]+item[i].value);
	printf("%4d",dp[i][j]);
	}
	else
	{
	dp[i][j]=dp[i-1][j];
	printf("%4d",dp[i][j]);
	}
	printf("\n");
}
delete[] item;
return 0;
}/*writen by bojie*/
#include<iostream>
# includ



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: