hihocoder 1091 揹包問題

2021-08-22 11:33:44 字數 654 閱讀 2557

乙個遊戲,一定金幣可以公升級,初始0級,對造成傷害為a

ia_i

ai​ ,每公升一級,傷害提公升a

ia_i

ai​ ,0->1級需要金幣為b

ib_i

bi​ ,以後每公升一級需要金幣量為上一次的1.07倍,實際上是向下取整。給定n個英雄,和初始m個金幣。每個英雄0級造成的傷害是不一樣的,公升級需要的金幣也不一樣。需要作出最優決策,公升級英雄,使所有英雄造成的傷害總和盡可能的高。

一看就感覺到,揹包問題,這裡每個英雄有不同的等級,那麼就相當於物品數量增加了,同乙個英雄的level 0,level 1…的時候都看作是不同的物品,那麼轉換為了標準的01揹包問題。揹包容量就是金幣數m。優化成為一維dp就很省空間。要分析清楚這裡是01揹包。

#include using namespace std;

const int maxn = 2e5+10;

int dp[maxn];

int w[maxn],c[maxn];

int main()}}

int maxd = -1;

for(int i=0;i<=m;i++)

maxd=max(maxd,dp[i]);

cout<}

return 0;

}

hihocoder 完全揹包

小ho現在手上有m張獎券,而獎品區有n種獎品,分別標號為1到n,其中第i種獎品需要need i 張獎券進行兌換,並且可以兌換無數次,為了使得辛苦得到的獎券不白白浪費,小ho給每件獎品都評了分,其中第i件獎品的評分值為value i 表示他對這件獎品的喜好值。現在他想知道,憑藉他手上的這些獎券,可以換...

HihoCoder 1043 完全揹包

華電北風吹 天津大學認知計算與應用重點實驗室 2016 06 24 題目分析 01揹包的完全揹包問題,思路跟01揹包類似,只是更新的時候對所有的容量狀態全部更新。problem1043.cpp 定義控制台應用程式的入口點。1043 完全揹包 張正義 2016 04 12 include stdafx...

hihocoder1043 完全揹包

具體問題請參考 hihocoder官網。回顧 hihocoder1038 01揹包問題,01揹包是按照物體逐一列舉,是因為每個物體只能選擇1次。而完全揹包問題,是可以選擇無數次,這裡可以展開為k個物體,但是作者採用的按照金額列舉。具體來說,定義f i 為有i個金額所能獲得的最大價值,那麼有轉移方程f...