#A6010. 布匹裁剪
布匹裁剪
题目背景
裁缝店有一批布料,第 i 种布料长 w_i 米、整卷价值 v_i 元。布料可以按任意长度裁剪——比如只剪 2.5 米,剪多少米就按比例拿到多少价值。
店里接了一条总长不超过 C 米的挂毯订单,需要从这些布料里剪取(每种都可以只剪其中一部分)。老板想让这条挂毯用掉的布料总价值尽量高。
题目描述
给定 n 种布料的长度 w_i 与整卷价值 v_i,以及订单的总长度上限 C。可以从每种布料中取任意长度(不超过 w_i,也可以一点不取),使取用总长度不超过 C,求能取到的最大总价值,保留两位小数。
输入格式
第一行两个整数 n, C。
接下来 n 行,每行两个整数 w, v,表示一种布料的长度与整卷价值。
输出格式
一个实数,表示最大总价值,保留两位小数。
输入输出样例
4 10
3 9
4 8
5 5
2 4
22.00
样例 1 解释
先取长度 3、4、2 的三卷,价值 9+8+4=21,总长 9 米;还剩 1 米,再从长 5、价值 5 的那一卷里剪 1 米,价值按比例是 1 元。整条挂毯总长正好 10 米,总价值 22 元;用其他取法都达不到 22 元。
说明/提示
- 1 ≤ n ≤ 10^5 - 1 ≤ w_i ≤ 10^6 - 1 ≤ v_i ≤ 10^6 - 1 ≤ C ≤ 10^9 - 布料可按任意长度裁剪,价值按长度等比例计算