#6981. 订单清单(orders)
订单清单(orders)
订单清单(orders)
题目描述
某加工厂需要安排一批生产订单。
工厂共有 (m) 天的基础加工费用,第 (i) 天的费用为 。
现在有 (n) 笔订单,每笔订单由三个整数 描述。
其中:
- 。
接受一笔订单,需要支付从第 (L_i) 天到第 (R_i) 天的所有基础加工费用之和。
每笔订单最多只能接受一次。
工厂的总预算为 (V),要求所有被接受订单的总加工费用不超过 (V)。
不同订单之间相互独立,即使对应的日期区间存在重叠,也可以同时接受,但每笔订单的加工费用必须分别计算。
请计算工厂能够获得的最大总收益。
输入格式
第一行包含三个整数 (m,n,V),分别表示天数、订单数量和总预算。
第二行包含 (m) 个正整数 ,表示每天的加工费用。
接下来 (n) 行,每行三个整数 。
输出格式
输出一个整数,表示最大总收益。
输入输出样例 #1
输入
6 4 10
2 1 3 2 4 1
1 2 4
3 4 8
5 6 7
2 5 14
输出
15
样例解释
四笔订单的加工费用分别为:
| 订单 | 日期区间 | 加工费用 | 收益 |
|---|---|---|---|
| 1 | 1,21,2 | 3 | 4 |
| 2 | 3,43,4 | 5 | 8 |
| 3 | 5,65,6 | 7 | |
| 4 | 2,52,5 | 10 | 14 |
选择第 2、3 笔订单,总费用为 (5+5=10),总收益为 (8+7=15)。
数据范围
| 测试点编号 | 层级 | m |
n |
V |
数据特征 | 标准输出 | 设计目的 |
|---|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 5 | 单日订单恰好用完预算 | 10 | 检查最小规模和基础转移 | |
| 2 | 3 | 所有订单费用均超过预算 | 0 | 检查超预算订单直接跳过 | |||
| 3 | 基础数据 | 5 | 4 | 10 | 包含 L=1、单日和跨日区间 |
14 | 检查前缀和边界及区间费用计算 |
| 4 | 正常数据 | 4 | 8 | 多个订单区间互相重叠 | 25 | 检查重叠区间仍作为独立订单选择 | |
| 5 | 2 | 10 | 四笔订单的区间完全相同 | 70 | 检查不同订单可分别选择,但每笔最多一次 | ||
| 6 | 边界数据 | 4 | 5 | 包含两笔费用为 0 的订单 | 32 | 检查零费用订单及倒序 0/1 转移 | |
| 7 | 正常数据 | 3 | 10 | 最优方案使用 8 单位预算 | 23 | 检查预算不要求恰好用完 | |
| 8 | 较强数据 | 10 | 4 | 区间长度直接形成不同费用 | 55 | 卡按单笔收益直接贪心 | |
| 9 | 极限价值 | 6 | 5 | 2000 | 单笔收益为 2×10⁹,含超预算长区间 |
8000000000 | 检查前缀和、超预算跳过及 long long |
| 10 | 极限规模 | 100000 | 100 | 每日费用均为 1,100 笔费用为 20 的订单 | 100000000000 | 检查最大天数、最大预算和大价值累加 | |