暗黑遊戲
description
暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的**(pg和rune)、能力值、最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能力下的最大可以獲得的能力值。
input
第一行,三個整數n,p,r,分別代表市場中物品種類,pg的支付能力和rune的支付能力。
第2..n+1行,每行四個整數,前兩個整數分別為購買此物品需要花費的pg,rune,第三個整數若為0,則說明此物品可以購買無數件,若為其他數字,則為此物品可購買的最多件數(s),第四個整數為該裝備的能力值。
output
僅一行,乙個整數,最大可獲得的能力值。
sample input
3 10 105 3 0 110
4 3 4 120
2 3 1 130
sample output
370
分析:這題是個完全揹包和多重揹包的混合揹包,做的時候分成完全揹包和多重揹包做就行了。
**
constmaxn=1000;
var f:array[0..maxn,0..maxn] of longint;
a,b,c,d:array[0..maxn] of longint;
i,j,k,l,n,p,r:longint;
function max(x,y:longint):longint;
begin
if x>y then exit(x) else exit(y);
end;
begin
readln(n,p,r);
for i:=1 to n do
readln(a[i],b[i],c[i],d[i]);
for i:=1 to n do
if c[i]=0 then
begin
for j:=a[i] to p do
for k:=b[i] to r do
f[j,k]:=max(f[j,k],f[j-a[i],k-b[i]]+d[i]);
endelse begin
for l:=1 to c[i] do
for j:=p downto a[i] do
for k:=r downto b[i] do
f[j,k]:=max(f[j,k],f[j-a[i],k-b[i]]+d[i]);
end;
writeln(f[p,r]);
end.
ssl2293 暗黑遊戲
暗黑遊戲 time limit 10000ms memory limit 65536k total submit 87 accepted 50 case time limit 1000ms description 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場...
SSL 2293暗黑遊戲
time limit 1000ms memory limit 65536k 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優...
SSL 2293 暗黑遊戲(動規練習題)
暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能力下的最大可以獲得的能力...