islands打爐石傳說 01揹包

2021-07-02 15:19:50 字數 1335 閱讀 9917

description

islands最近在完一款遊戲「爐石傳說」,又名「魔獸英雄傳」。爐石傳說是一款卡牌類對戰的遊戲。遊戲是2人對戰,總的來說,裡面的卡牌分成

2類,一類是法術

牌,另一類是隨從

牌(所謂隨從就是怪物)

。為了簡化問題,現在假設隨從牌

的作用是

召喚乙個具有

一定攻擊力的怪物

,法術牌的作用是給某個隨從增加

一定攻擊力。隨從牌和法術牌

的使用都需要

消耗一定的法力值。現在islands有10點法力值,手上有n張牌(islands最多有10張牌,否者他將會被爆牌

t_t),有些是法術牌,有些是隨從牌。islands現在是大劣勢,他想要是利用這10點法力值使得召喚出來的所有隨從的攻擊力

總和最高(法力值可以不用完)。注意,任何法術牌都必須使用在某個

召喚出來的隨從

上,也就是如果

islands

沒有召喚過隨從,

他將不能使用任何法術

牌。告訴islands他

能召喚的隨從的總

攻擊力最大是多少。

input

首先輸入測試資料組數t(t<=10)

每組資料首先輸入乙個n(0<=n<=10),表示islands有n張牌接下來n行每行輸入3個整數 cost(0<=cost<=10),d(0或者1),w(|w|<=1000)。cost表示該牌的法力值消耗,如果d=0,表示該牌是攻擊力為w的隨從牌,如果d=1,表示是能給乙個隨從增加w攻擊的法術牌。

output

對於每組資料輸出按照格式「case #x: a」(不包括冒號)輸出一行。其中x表示第x組測試資料,a表示對應的答案。

2

11 0 100

11 1 100

case #1: 100

case #2: 0

這個就是乙個01揹包問題

#include

#include

#include

#include

using namespace std;

#define nn 1000

int main()

} memset(use,false,sizeof(use));

maxx=max(dp[10-cost[a[i]]]+val[a[i]],maxx);

memset(dp,0,sizeof(dp)); }

printf("case #%d: %d\n",kk,maxx); }

} }

}

islands打爐石傳說

islands 最近在完一款遊戲 爐石傳說 又名 魔獸英雄傳 爐石傳說是一款卡牌類對戰的遊戲。遊戲是兩人對戰,總的來說,裡面的卡牌分成兩類,一類是法術牌,另一類是隨從牌 所謂隨從就是怪物 為了簡化問題,現在假設隨從牌的作用是召喚乙個具有一定攻擊力的怪物,法術牌的作用是給某個隨從增加一定攻擊力。隨從牌...

D islands打爐石傳說

time limit 1000 ms memory limit 65536 kb total submit 64 accepted 10 page view 122status clarify description islands最近在完一款遊戲 爐石傳說 又名 魔獸英雄傳 爐石傳說是一款卡牌類對...

CCF 爐石傳說

這題原本想的比較複雜,因為每次召喚隨從或隨從死亡時都要對右邊的隨從編號進行變動,然後構建了鍊錶的資料結構,但是越寫越複雜,所以馬上放棄這個思路。其實只要構建乙個結構體,結構體儲存隨從的health和attack,以及乙個flag表示隨從是否死亡。構建兩個size為8的陣列,用以儲存隨從即可。incl...