码迷,mamicode.com
首页 > 其他好文 > 详细

完全背包问题

时间:2014-08-30 08:51:13      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:for   问题   sp   size   c   as   bs   print   r   

完全背包问题 解决方法  跟初级硬币问题递推法 很相似,只需将1改成 对应的数值。

value 背包价值,  v体积,   n种背包, 体积不超过V,最大价值。

void WKnapsack(int *value, int* v, int n, int V)
{     
	int d[1000];
	memset(d, 0, sizeof(int)*1000);
	for(int i = 1; i <= n; i++)
	{
		for(int j = 0; j <= V; j++)  
		{
			if(j >= v[i])
			{
				d[j] = max(d[j],  d[j - v[i]] + value[i]); //1换成value[i]
			}
						
		}
	}
	printf("%d ", d[n]);
}


完全背包问题

标签:for   问题   sp   size   c   as   bs   print   r   

原文地址:http://blog.csdn.net/weiqiwu1986/article/details/38929231

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