Full knapsack

完全背包问题

题目:

有N种物品和一个容量为v的背包,每种物品都有无限件可用。第i种物品的费用是c[i],价值是w[i]。

求解将那些物品装入背包可使这些物品的费用总和不超过背包容量且价值最大。

基本思路:

这个问题非常类似于01背包问题,所不同的是每种物品无限件。也就是从每种物品的角度考虑,与他相关的策略已并非取或不取两种,而是有取0件,1件,2件……  etc。如果任然按照01背包时的思路,令f[i][v]表示前i种物品恰巧放入一个容量为v的背包的最大权值。任然可以按照每种物品不同的策略写出状态转移方程:

f[i][v] = max { f[i-1][v-k*c[i]]+k*w[i] }

时间: 2024-12-13 16:45:49

Full knapsack的相关文章

Greedy for Fractional Knapsack

部分背包(Fractional Knapsack) 按性价比排好序列 一个一个往进去装直到最后一个不能全装进去计算比例 JAVA public class FractionalKnapsack { public static float[] GREEDY_KNAPSACK(int[] w,int W,int[] v) { int i; int n=w.length;//总共有多少个物品,用w.length/v.length都可以 float[] x=new float[n]; for(i=0;i

FZU 2214 ——Knapsack problem——————【01背包的超大背包】

2214 Knapsack problem Accept: 6    Submit: 9Time Limit: 3000 mSec    Memory Limit : 32768 KB  Problem Description Given a set of n items, each with a weight w[i] and a value v[i], determine a way to choose the items into a knapsack so that the total

1127 - Funny Knapsack

   PDF (English) Statistics Forum Time Limit: 2 second(s) Memory Limit: 32 MB Given n integers and a knapsack of weight W, you have to count the number of combinations for which you can add the items in the knapsack without overflowing the weight. In

(01背包 当容量特别大的时候) Knapsack problem (fzu 2214)

http://acm.fzu.edu.cn/problem.php?pid=2214 Problem Description Given a set of n items, each with a weight w[i] and a value v[i], determine a way to choose the items into a knapsack so that the total weight is less than or equal to a given limit B and

FZU 2214 Knapsack problem(背包问题)

Description 题目描述 Given a set of n items, each with a weight w[i] and a value v[i], determine a way to choose the items into a knapsack so that the total weight is less than or equal to a given limit B and the total value is as large as possible. Find

knapsack problem 背包问题 贪婪算法GA

knapsack problem 背包问题贪婪算法GA 给点n个物品,第j个物品的重量,价值,背包的容量为.应选哪些物品放入包内使物品总价值最大? 规划模型 max s.t. 贪婪算法(GA) 1.按价值密度从大到小依次放入包内直到放不下,设此时放了s个物品 2.将所得价值与最大价值()所比较,取最大的作为输出 贪婪算法与最优解竞争比(近似比)为 证明:

hdu 1712, multiple-choice knapsack,

reference: 6.4 knapsack in Algorithms(算法概论), Sanjoy Dasgupta University of California, San Diego Christos Papadimitriou University of California at Berkeley Umesh Vazirani University of California at Berkeley the unbounded knapsack and 0-1 knapsack a

Knapsack I 竟然是贪心,证明啊。。。。

Knapsack I Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) SubmitStatus Problem Description 给出N个数a[1]....a[N],对于任意两个数(a[i],a[j]),保证a[i] % a[j] == 0 || a[j] % a[i] == 0,再给出一个数M,问这些数能否取出若干个来,使得其和为M Input 多组数据,每组数组首先输入N,

2018.3.5-6 knapsack problem, sequence alignment and optimal binary search trees

这周继续dynamic programming,这三个算法都是dynamic programming的. knapsack problem有一种greedy的解法,虽然简单但是不保证正确,这里光头哥讲的是dynamic的解法.其实和上次那个max weight independent set的算法差不多,同样是每个物件都判断一遍有这个物件和没这个物件两种情况,用bottom-up的方法来解,然后得到一个最大的value值,这时因为没有得到具体的选择方案,所以最后还需要一部重构的步骤得到具体方案.

动态规划-背包问题 Knapsack

2018-03-15 13:11:12 背包问题(Knapsack problem)是一种组合优化的NP完全问题.问题可以描述为:给定一组物品,每种物品都有自己的重量和价格,在限定的总重量内,我们如何选择,才能使得物品的总价格最高.问题的名称来源于如何选择最合适的物品放置于给定背包中. 相似问题经常出现在商业.组合数学,计算复杂性理论.密码学和应用数学等领域中. 一.0/1背包问题 背包问题是个NPC问题,01背包可以通过动态规划算法在伪多项式时间内给出解. 0/1背包问题的特点是,每种物品仅仅