FATE 二維費用揹包問題

2021-09-25 21:23:24 字數 1383 閱讀 1762

傳送門:hdu-2159

最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的經驗,並減掉相應的忍耐度。當忍耐度降到0或者0以下時,xhd就不會玩這遊戲。xhd還說了他最多隻殺s只怪。請問他能昇掉這最後一級嗎?

輸入資料有多組,對於每組資料第一行輸入n,m,k,s(0 < n,m,k,s < 100)四個正整數。分別表示還需的經驗值,保留的忍耐度,怪的種數和最多的殺怪數。接下來輸入k行資料。每行資料輸入兩個正整數a,b(0 < a,b < 20);分別表示殺掉乙隻這種怪xhd會得到的經驗值和會減掉的忍耐度。(每種怪都有無數個)

輸出公升完這級還能保留的最大忍耐度,如果無法公升完這級輸出-1。

123

4567

891011

1213

1415

1617

1819

2021

2223

2425

2627

2829

3031

3233

3435

3637

3839

4041

4243

4445

//#include

#include

#include

#include

#include

#include

#include

#include

using

namespace

std;

#define crl(a) memset(a,0,sizeof(a))

#define max 0xfffffff

typedef

unsigned

long

long ll;

typedef

long

long ll;

const

double pi = acos(-1);

const

double e = 2.718281828459;

const

int mod =1e9+7;

int dp[105][105],n,m,k,s,cost[105],valum[105]; //dp[i][j]:殺i,耐力j時的經驗

intmain()}

return0;}

hdu 2159 FATE 二維費用揹包問題)

題目 怪物有無限個,將完全揹包加一維,除了忍耐度 容量 限制,還有總數限制 物品總個數的限制 有時,二維費用 的條件是以這樣一種隱含的方式給出的 最多只能取m件物品。這事實上相當於每件物品多了一種 件數 的費用,每個物品的件數費用均為1,可以付出的最大件數費用為m。換句話說,設f v m 表示付出費...

FATE(二維揹包)

c fate time limit 1000ms memory limit 32768kb 64bit io format i64d i64u submit status use mathjax to parse formulas description 最近xhd正在玩一款叫做fate的遊戲,為了...

HDU 2159 FATE 二維費用揹包

problem description 最近xhd正在玩一款叫做fate的遊戲,為了得到極品裝備,xhd在不停的殺怪做任務。久而久之xhd開始對殺怪產生的厭惡感,但又不得不通過殺怪來公升完這最後一級。現在的問題是,xhd昇掉最後一級還需n的經驗值,xhd還留有m的忍耐度,每殺乙個怪xhd會得到相應的...