題目
嗯,其實吧,還是算比較顯然的dp。 f[
i][j
]表示前
i個英雄
,用了j
元錢的最
多方案數
,最後答
案就是滿
足f[n
][j]
≥m最小
的j了。
轉移方法,首先
,肯定要
列舉i,
然後列舉
當前買幾
個**j
,再列舉
l表示f
[i][
l]從什
麼轉移過
來。注意
,每次l
的上界是
當前買所
有**的
**。
這樣,一
個普通的
dp就寫
完了。
#include
using
namespace
std;
typedef
long
long ll;
ll f[125][250010],m,tmp;
int n,c[125],k[125];
int main()
for(int i=0;i<=tmp;i++)
if(f[n][i]>=m)return
cout
<0;
return
0;}
bzoj5018 Snoi2017 英雄聯盟
description 正在上大學的小皮球熱愛英雄聯盟這款遊戲,而且打的很菜,被們戲稱為 小學生 現在,小皮球終於受不 了們的嘲諷,決定變強了,他變強的方法就是 買 小皮球只會玩n個英雄,因此,他也只準備給這n個英 雄買 並且決定,以後只玩有 的英雄。這n個英雄中,第i個英雄有ki款 是每款ciq幣...
bzoj5018 Snoi2017 英雄聯盟
10.5重回bzoj。刷了這道揹包dp交了10次。不過這個真的是一道好題。也許是我dp太爛 由於錢數較小,容易想到,f i 表示花了i元所有的展示策略個數。然而在dp的時候卻有乙個問題,我們列舉買的 個數維護揹包時,有可能同乙個英雄不同 數疊乘,這樣就不對了,所以dp時先從後將更新的位置列舉出來,再...
BZOJ5018 Snoi2017 英雄聯盟
算算 n 的最大值,i 1 nk i c i 243552 這就可以直接上揹包了 最裸最暴力的那種 可以選擇滾動陣列,並不能減掉一維,因為在重複列舉 j 的時候除第一次列舉之外都會用到當前這一層的狀態 include include include include include includeus...