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