bzoj5018 Snoi2017 英雄聯盟

2021-08-15 22:12:01 字數 748 閱讀 5638

題目

嗯,其實吧,還是算比較顯然的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...