這是一道使用多重揹包的題
其實還是挺簡單的
哈哈哈哈哈哈哈
描述暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用 pg 和 rune 購買需要的物品。暗黑市場中的裝備,每件有不同的**(pg 和 rune)、能力值、最大可購買件數。kid 作為暗黑戰網的乙個玩家,當然希望使用盡可能少的 pg 和 rune 購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能力下的最大可以獲得的能力值。
輸入第一行,三個整數 n,p,r,分別代表市場中物品種類,pg 的支付能力和 rune 的支付能力。
第 2 ~ n+1 行,每行四個整數,前兩個整數分別為購買此物品需要花費的 pg,rune,第三個整數若為 0,則說明此物品可以購買無數件,若為其他數字,則為此物品可購買的最多件數(s),第四個整數為該裝備的能力值。
輸出僅一行,乙個整數,最大可獲得的能力值。
輸入樣例 1
3 10 10輸出樣例 15 3 0 110
4 3 4 120
2 3 1 130
370提示樣例解釋
選第二種裝備 2 件和第三種裝備 1 件。
資料規模
對於 30%的資料, 0**
一本通下面是多重揹包的基本打法
while(x <=c[i])if(c[i]>0
)
}
//轉成01揹包來寫,注意:此處打包總個數字k,不要寫成n
for(int i = 1; i <= k; i++)只要掌握了多重揹包的基本思路就能快速做出此題}
下面是這道題的正解**
#includeusing這是揹包問題中比較好的一道題,需要大家靠自己去做一做,看懂後自己去打**,不要貼上!namespace
std;
long
long n,k,v1,v2,w1[1000009],w2[10000009],v[10000009],p[10000009],vp[10000009],wp1[10000009],wp2[10000009],f[1009][1009
];int
main()
while(x<=p[i])
if(p[i]>0
)
}for(long
long i=1;i<=k;++i)}}
cout
<
return0;
}
再插一句歐文萬歲!!!
暗黑遊戲(動態規劃)
description 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能...
ssl2293 暗黑遊戲
暗黑遊戲 time limit 10000ms memory limit 65536k total submit 87 accepted 50 case time limit 1000ms description 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場...
codeup28033 暗黑遊戲
時空限制 1000ms 128mb 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算...