标签: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