牛客網 B TaoTao要吃雞 01揹包

2021-08-15 07:22:57 字數 1099 閱讀 1320

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 32768k,其他語言65536k

64bit io format: %lld

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.

輸出最大威力值,每組輸出一行
這道題目考察的是 01 揹包,和 01 揹包不同的是,這裡的容量不確定,要分類:

揹包容量為 0 , 總容量為手上的容量,直接 01 揹包;

揹包容量不為0,因為  0 <= 物品威力 <= 100 ,都是整數。所以如果有的物品威力為 0 , 可能為了故意不裝滿揹包而最後選了這件物品,就不是最大值。所以,要考慮最後不拿一件物品的情況。

最後不拿一件物品,總容量就是 m+h ,最大值是 01 揹包; 

最後拿一件物品,總容量上限是 m+h-1 , 最大值是 01 揹包+最後拿的那件物品的威力 ;

多種情況取最大值。

#include #include #include using namespace std ;  

int dp[202] , cost[101] , value[101] ;

int main()

else

cout << ans << endl ;

}

} return 0 ;

}

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

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

TaoTao要吃雞 (牛客 01揹包)

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

TaoTao要吃雞(01揹包)

題目描述 taotao的電腦帶不動絕地求生,所以taotao只能去玩pc版的荒野行動了,和絕地求生一樣,遊戲人物本身可以攜帶一定重量m的物品,裝備揹包 之後可以多攜帶h h為0代表沒有裝備揹包 重量的東西。玩了幾天 taotao發現了乙個bug,當裝備揹包之後,如果可攜帶重量沒有滿,就 可以拿乙個任...