混合背包(动态规划)
2016-04-08 21:47
316 查看
Description背包体积为V
,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至多取1件,要么至多取mi件(mi > 1) , 要么数量无限
, 在所装物品总体积不超过V的前提下所装物品的价值的和的最大值是多少?Input第一行两个数V,N下面N行每行三个数Vi,Wi,Mi表示每个物品的体积,价值与数量,Mi=1表示至多取一件,Mi>1表示至多取Mi件,Mi=0表示数量无限Output1个数Ans表示所装物品价值的最大值Sample Input
若是完全背包,状态转移方程为:f[j]=max{f[j],f[j-w[i]]+c[i]}(w[i]<=j<=m)若是多重背包,状态转移方程为:f[k]=max{f[k],f[k-w[i]]+c[i]}(1<=j<=p[j],m>=k>=w[i])程序:var
n,m,i,j,k:longint;
w,c,p:array[0..30]of longint;
f:array[0..200]of longint;function max(x,y:longint):longint;
begin
if x>y then
exit(x);
exit(y);
end;begin
readln(m,n);
for i:=1 to n doreadln(w[i],c[i],p[i]);
for i:=1 to n do
if p[i]=0 thenbeginfor j:=w[i] to m dof[j]:=max(f[j],f[j-w[i]]+c[i]);end
elsebeginfor j:=1 to p[i] dofor k:=m downto w[i] dof[k]:=max(f[k],f[k-w[i]]+c[i]);end;
writeln(f[m]);
end.版权属于: Chris
原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102v9wo.html
转载时必须以链接形式注明原始出处及本声明。
,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至多取1件,要么至多取mi件(mi > 1) , 要么数量无限
, 在所装物品总体积不超过V的前提下所装物品的价值的和的最大值是多少?Input第一行两个数V,N下面N行每行三个数Vi,Wi,Mi表示每个物品的体积,价值与数量,Mi=1表示至多取一件,Mi>1表示至多取Mi件,Mi=0表示数量无限Output1个数Ans表示所装物品价值的最大值Sample Input
10 3
2 1 0
3 3 1
4 5 4Sample Output
11
解题思路:f[j]表示一定种类物品在容量为j的背包里的最大价值,根据题意分别处理,循环为:1<=i<=n
若是完全背包,状态转移方程为:f[j]=max{f[j],f[j-w[i]]+c[i]}(w[i]<=j<=m)若是多重背包,状态转移方程为:f[k]=max{f[k],f[k-w[i]]+c[i]}(1<=j<=p[j],m>=k>=w[i])程序:var
n,m,i,j,k:longint;
w,c,p:array[0..30]of longint;
f:array[0..200]of longint;function max(x,y:longint):longint;
begin
if x>y then
exit(x);
exit(y);
end;begin
readln(m,n);
for i:=1 to n doreadln(w[i],c[i],p[i]);
for i:=1 to n do
if p[i]=0 thenbeginfor j:=w[i] to m dof[j]:=max(f[j],f[j-w[i]]+c[i]);end
elsebeginfor j:=1 to p[i] dofor k:=m downto w[i] dof[k]:=max(f[k],f[k-w[i]]+c[i]);end;
writeln(f[m]);
end.版权属于: Chris
原文地址: http://blog.sina.com.cn/s/blog_83ac6af80102v9wo.html
转载时必须以链接形式注明原始出处及本声明。
相关文章推荐
- 完全背包(动态规划)
- 完全背包(动态规划)
- 渡轮问题(动态规划)
- 渡轮问题(动态规划)
- 2006年分区联赛普级组之二&nbsp;开心的…
- 2006年分区联赛普级组之二&nbsp;开心的…
- 2001年分区联赛普级组之四&nbsp;装箱问…
- 2001年分区联赛普级组之四&nbsp;装箱问…
- 2005年分区联赛普级组之三&nbsp;采药
- 2005年分区联赛普级组之三&nbsp;采药
- 机器分配(动态规划)
- 机器分配(动态规划)
- 2004年分区联赛提高组之三&nbsp;合…
- 2004年分区联赛提高组之三&nbsp;合…
- 求最长不下降序列(动态规划)
- 求最长不下降序列(动态规划)
- 城市交通(动态规划)
- 城市交通(动态规划)
- 数字金字塔(动态规划)
- 数字金字塔(动态规划)