您的位置:首页 > 其它

0-1背包问题

2016-05-08 14:48 246 查看


public static void pack0_1(int[] v,int[] w,int cap)
{
int n = v.length;
if(n<=0 || cap<=0)
{
System.out.println(0);//不存在物品或背包容量小于等于0
return;
}

int[] f = new int[cap+1];
for(int i = 0;i<n;i++)
{
for(int j = cap;j>0;j--)
{
if(j<w[i])
continue;
int max = Math.max(f[j], f[j-w[i]]+v[i]);//状态转移方程
f[j] = max;
}
}

System.out.println(f[cap]);	//输出能获取的最大值
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: