揹包問題 哈士奇

2021-10-02 03:13:08 字數 1063 閱讀 4312

description

由於高數巨養的喵星人太傲嬌了,要天天吃新鮮貓糧而且還經常欺負高數巨,所以高數巨決定買幾條哈士奇嚐嚐鮮。這天高數巨來到了二**市場買哈士奇,高數巨看完了所有的哈士奇,記下了每條哈士奇的**,並根據對它們的好感程度給它們每只都賦予了乙個萌值。高數現在手裡有x元,她想通過購買若干條哈士奇來獲得盡可能多的萌值。現在給定高數巨手裡的錢x以及n條哈士奇的**和萌值,求高數巨最多可獲得多少萌值

input

多組輸入。

對於每組輸入,第一行有兩個整數n,x(1 < = n < = 100,1 < = x < = 1000),分別表示哈士奇的數量和高數巨的錢數

接下來的n行每行有兩個整數pi,mi(1 < = pi,mi < = 100),分別表示第i條哈士奇的**和萌值

output

對於每組資料,輸出乙個整數,表示高數巨最多可以獲得的萌值,每組輸出佔一行

sample

input

2 100

50 20

60 40

3 100

20 55

20 35

90 95

1 10

20 50

output

4095

001揹包的狀態轉換方程 f[i,j] = max

f[i,j]表示在前i件物品中選擇若干件放在承受能力為j的揹包中,可以取得的最大價值。

pi表示第i件物品的價值。

決策:為了揹包中物品總價值最大化,第 i件物品應該放入揹包中嗎 ?

可簡單地畫個圖表便以理解(由左到右,由下到上)

詳細可看backtomenow的部落格,講的很詳細,不過他的**沒理解,解題過程懂了,下面的**是我自己寫的。這是大佬的部落格鏈結

(

#include

using

namespace std;

struct dog

a[101];

intmain()

;while

(cin>>n>>x)

} cout<[x]<}return0;

}

揹包問題 01揹包問題

n個物品,總體積是v,每個物品的體積的vi,每個物品的最大價值是wi,在不超過v的體積下求最大價值 eg揹包容積為 5 物品數量為 4 物品的體積分別為 物品的價值分別為 思路定義乙個二位陣列int f new int n 1 v 1 f i j 就表示在1 i個物品中選取體積小於v的情況的最大價值...

01揹包問題 完全揹包問題 多重揹包問題

0 1 揹包問題 給定 n 種物品和乙個容量為 c 的揹包,物品 i 的重量是 wi,其價值為 vi 問 應該如何選擇裝入揹包的物品,使得裝入揹包中的物品的總價值最大?分析一波,面對每個物品,我們只有選擇拿取或者不拿兩種選擇,不能選擇裝入某物品的一部分,也不能裝入同一物品多次。解決辦法 宣告乙個 大...

01揹包問題 完全揹包問題 多重揹包問題

有n件物品和乙個容量為v 的揹包。放入第i件物品耗費的空間是ci,得到 的價值是wi。求解將哪些物品裝入揹包可使價值總和最大。這是最基礎的揹包問題,特點是 每種物品僅有一件,可以選擇放或不 放。用子問題定義狀態 即f i,v 表示前i件物品恰放入乙個容量為v的揹包可以 獲得的最大價值。則其狀態轉移方...