3698: 分装背包问题

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:5 解决:5

题目描述

给定一个容量为 W 的背包,以及 N 个可分割的物品(分数背包)。每个物品 i 有两个属性:重量 w[i] 和价值 v[i]。你可以选择将物品的一部分装入背包(而非必须完整装入),要求在不超过背包容量的前提下,最大化背包中物品的总价值。 优先选择单位重量价值(价值 / 重量) 最高的物品,尽可能多地装入;若该物品无法完整装入,则装入剩余容量对应的部分,直到背包被装满。

输入

第一行:两个整数 N 和 W,分别表示物品数量(1 ≤ N ≤ 100)和背包容量(1 ≤ W ≤ 1000)。
接下来 N 行:每行两个整数 v[i] 和 w[i],分别表示第 i 个物品的价值(1 ≤ v [i] ≤ 1000)和重量(1 ≤ w [i] ≤ 1000)。

输出

输出一个浮点数,表示背包能装入的最大总价值,结果需精确到小数点后 2 位。

样例输入 复制

3 50
60 10
100 20
120 30

样例输出 复制

240.00