天天看點

17-又見01背包

/*                                 

時間限制:1000 ms  |  記憶體限制:65535 KB

難度:3

描述

        有n個重量和價值分别為wi 和 vi 的 物品,從這些物品中選擇總重量不超過 W

    的物品,求所有挑選方案中物品價值總和的最大值。

      1 <= n <=100

      1 <= wi <= 10^7

      1 <= vi <= 100

      1 <= W <= 10^9

輸入

    多組測試資料。

    每組測試資料第一行輸入,n 和 W ,接下來有n行,每行輸入兩個數,代表第i個物品的wi 和 vi。

輸出

    滿足題意的最大價值,每組測試資料占一行。

樣例輸入

    4 5

    2 3

    1 2

    3 4

    2 2

樣例輸出

//由于重量太大了,開數組絕對記憶體超了,有觀察到價值很小,故可以轉化思路反過來求,

//動态規劃分析:最少要拿總價值一定,求所拿的最小品質(根據"最大能拿總重量一定,求能拿的最大價值"原理推導)