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表示對應的答案。
211 0 100
11 1 100
case #1: 100case #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...