#iai20b1. 牛奶供应(三)(Milk Supply III)
牛奶供应(三)(Milk Supply III)
牛奶供应(三)(Milk Supply III)
题目描述
小爱经营了一家牧场生产牛奶,接下来 n 天时间里,每天都有订单,其中第 i 天,必须发出 a_i 箱牛奶。生产牛奶的成本来自于两方面:
- 一是材料费。原料价格每天都会变化,如果选择在第i天生产牛奶,需要为每箱牛奶支付 c_i 元的材料费。
- 二是存储费。如果原材料成本上涨,可以提前把牛奶做好,放在冷库里保存,但需要支付仓储费,一箱牛奶存放一天的成本是 s 元。
每天的产能都没有上限,也就是说可以在任一天生产出任意多数量的牛奶,冷库的容量也没有上限,且假设牛奶可以存放任意长的时间。
请问,为了满足这些订单的要求,小爱应该如何规划每天的产量,又如何存储,才能把总成本控制到最小?
输入格式
第一行:两个整数 n 和 s。
第二行到第 n+1 行:第 i+1 行有两个整数 c_i 和 a_i。
输出格式
单个整数:表示为了满足所有订单的最小总成本。
样例输入 #1
3 10 100 5 200 5 90 20
样例输出 #1
2850
数据范围
- 1 ≤ s ≤ 100,000
- 1 ≤ c_i ≤ 100,000
- 1 ≤ a_i ≤ 100,000
- 对于 30% 的数据,1 ≤ n ≤ 20
- 对于 60% 的数据,1 ≤ n ≤ 5,000
- 对于 100% 的数据,1 ≤ n ≤ 1,000,000
知识点与难度
本题涉及的知识点从属于 GESP 5级,难度等级:⭐⭐。
测试点分布
| Subtask | 分值 | 测试点编号 | 说明 |
|---|---|---|---|
| 0 | 10 | 1~2 | 样例 |
| 1 | 20 | 3~8 | 小规模 n≤20 / 特殊: 全相同c / 递减c |
| 2 | 15 | 9~11 | Hack: 大s / 大a_i / n=1 |
| 3 | 30 | 12~20 | 中规模 n≈1000~100000 |
| 4 | 25 | 21~25 | 大规模 n≈1000000 压力 |