TaoTao要吃雞(01揹包)

2021-08-21 19:10:35 字數 1114 閱讀 8623

題目描述

taotao的電腦帶不動絕地求生,所以taotao只能去玩pc版的荒野行動了,

和絕地求生一樣,遊戲人物本身可以攜帶一定重量m的物品,裝備揹包

之後可以多攜帶h(h為0代表沒有裝備揹包)重量的東西。玩了幾天

taotao發現了乙個bug,當裝備揹包之後,如果可攜帶重量沒有滿,就

可以拿乙個任意重的東西。(解釋看樣例)有一天taotao空降到了乙個

奇怪的島上,島上有n件裝備,每個裝備都有重量wi和威力值vi,但taotao

不認識這些裝備,所以他來求助你,挑選威力最大的裝備,幫助他吃雞。

輸入描述:

本題有多組輸入(小於10),當n=0時結束輸入。

第一行輸入n,m,h。n,m,h為整數,並且0<=n,m,h<=100,

接下來n行,每行輸入第i個物品的物品的重量wi和威力值vi。0<=wi,vi<=100.

輸出描述:

輸出最大威力值,每組輸出一行。

示例1輸入

3 3 3

2 33 2

2 30輸出8

說明可攜帶的總重量為6,當拿了前兩件裝備,此時容量為5/6,還可以再拿第三件物品。

另一種方法就是暴力,因為資料小,所以讓總揹包重量為m+h-1,減去乙個1代表肯定背不滿。那樣就可以遍歷每乙個揹包,在遍歷當前揹包時,此包不背,去背其它包。

這樣ans=max(ans,最後得到的最大價值+當前揹包的價值)。

題目有句話說:當裝備揹包之後,如果可攜帶重量沒有滿,就

可以拿乙個任意重的東西,所以要考慮h為0的時候,即使背不滿也不能去拿其它的物品。

#include#include#include#include#include#include#include#include#include#include#include#include#define max(a,b)   (a>b?a:b)

#define min(a,b) (a>n&&n)

}cout<=weight[i]; j--)

}ans=max(ans,dp[w]+value[k]);

}cout<}

}}

TaoTao要吃雞(01揹包)

題目戳我 思路 當h 0時直接套01揹包即可。當h 0時能卡bug,我們假設第k個 是卡bug放進去的,那麼我們只需用01揹包求出承受m h 1重量時的最大價值,那麼此後的最大價值為dp m h 1 第k個價值,故只需1 n列舉 define first f define second s defi...

TaoTao要吃雞 (牛客 01揹包)

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld taotao的電腦帶不動絕地求生,所以taotao只能去玩pc版的荒野行動了,和絕地求生一樣,遊戲人物本身可以攜帶一定重量m的物品,裝備揹包 之後可以多攜帶h h為0代...

牛客網 TaoTao要吃雞 0 1揹包變形

題意 題目鏈結 分析 如果沒有 bug 即 h 0 的時候 就是乙個普通的 0 1 揹包 需要討論一下 h 0 的情況 此時有就相當於有物品是有特權的 而且揹包裝有特權的物品根據題目的要求是應當最後裝的 也就是說特權物品裝完之後揹包將不再可裝 所以特權物品肯定是只有乙個的 資料量並不大,所以可以去列...