天天看点

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

样例输出

//由于重量太大了,开数组绝对内存超了,有观察到价值很小,故可以转化思路反过来求,

//动态规划分析:最少要拿总价值一定,求所拿的最小质量(根据"最大能拿总重量一定,求能拿的最大价值"原理推导)