SSL 2293 暗黑遊戲(動規練習題)

2021-08-13 10:24:01 字數 1490 閱讀 8130

暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的**(pg和rune)、能力值、最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出現有支付能力下的最大可以獲得的能力值。

輸入格式

第一行,三個整數n,p,r,分別代表市場中物品種類,pg的支付能力和rune的支付能力。

第2..n+1行,每行四個整數,前兩個整數分別為購買此物品需要花費的pg,rune,第三個整數若為0,則說明此物品可以購買無數件,若為其他數字,則為此物品可購買的最多件數(s),第四個整數為該裝備的能力值。

輸出格式

僅一行,乙個整數,最大可獲得的能力值。

樣例輸入

3 10 10

5 3 0 110

4 3 4 120

2 3 1 130

樣例輸出

370

本題可以理解為二維費用+混合揹包問題,可以將pg的支付能力理解為重量,將rune理解為體積就可以了。

**(c++)

#include#include#define sr c=getchar()  

#define input read()

#define pd (c<'0'||c>'9')

#define fk f=f*10+c-48

#define ps if (c=='-') d=-1

using namespace std;

int f[101][101];int v,u,k;

int a[10001],c[10001],b[10001],s[10001];

int max(int x,int y)

int read()//輸入快速流

void write(int x)//輸出快速流

int main()

for (int i=1;i<=k;i++)

if (!s[i])//如果是0則是無窮揹包

for (int j=0;j<=v;j++)

for (int l=0;l<=u;l++)

{int t1=j+a[i],t2=l+b[i];

if (t1>v) continue;

if (t2>u) continue;

if (f[t1][t2]=0;j--)

for (int l=u;l>=0;l--)

{int t1=j+a[i],t2=l+b[i];

if (t1>v) continue;

if (t2>u) continue;

if (f[t1][t2]

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購買更優...

SSL2293 暗黑遊戲 dp

暗黑遊戲 description 暗黑遊戲中,裝備直接決定玩家人物的能力。可以使用pg和rune購買需要的物品。暗黑市場中的裝備,每件有不同的 pg和rune 能力值 最大可購買件數。kid作為暗黑戰網的乙個玩家,當然希望使用盡可能少的pg和rune購買更優的裝備,以獲得最高的能力值。請你幫忙計算出...