01背包序

来源:互联网 发布:程序员客栈好接单吗? 编辑:程序博客网 时间:2024/05/16 14:48

有N件物品,和一个容量为V的背包;第i件物品的费用是c[i],价值为w[i];求解将那些物品装入背包,使这些物品的费用和不超过背包容量且价值总和最大?

这是背包最基本的问题,特点是每件物品有两种选择:放或不放;

状态转移方程为dp[i][j]=max(dp[i-1][j],dp[i-1][j-c[i]]+w[i]);

优化一下空间复杂度可以改为:dp[j]=max(dp[j],dp[j-c[i]]+w[i]);(i(1-->N)j(V-->0));

0 0
原创粉丝点击