#6914. C.矿业调度(Mining)
C.矿业调度(Mining)
矿业调度(Mining)
题目描述
王国境内有 (N) 个矿点,编号为 (1) 到 (N)。国王每天可以选择一个矿点开采。对于第 (i) 个矿点:
- 第一次开采时,可以获得 (A_i) 单位金矿。
- 一旦开始开采,该矿点每天可获得的金矿量减少 (1):首次开采的次日为 (A_i-1),再下一日为 (A_i-2),依此类推。
- 每次开采都需要支付 (i-1) 单位金矿作为运输成本。
当天的净收益 = 当天采获的金矿量 − 运输成本。
国王最多有 (M) 天可以开采,每天至多选择一个矿点。如果所有矿点的当天净收益都不大于 (0),便停止开采。

例如,有两个矿点,(A_1=4)、(A_2=2),可开采时间为 (M=10) 天。前四天连续开采矿点 (1),净收益为 (4+3+2+1=10)。第五天首次开采矿点 (2),净收益为 (2-(2-1)=1)。此后没有矿点能带来正收益,因此最终总净收益为 (11)。
请计算采用最佳策略时,国王在 (M) 天内最多能获得多少净收益。
输入格式
输入共两行:
- 第一行包含两个整数 (N,M),分别表示矿点数量和最多可开采的天数,满足 (1\le N\le10^5)、(1\le M\le100)。
- 第二行包含 (N) 个整数 (A_1,A_2,\ldots,A_N),其中 (1\le A_i\le10^6),表示各矿点首次开采时可获得的金矿量。
输出格式
输出一个整数,表示 (M) 天内能够获得的最大净收益。
样例 1
输入
5 3
7 3 5 9 10
输出
19
说明
前两天开采矿点 (1),分别获得 (7) 和 (6) 的净收益;第三天首次开采矿点 (4),净收益为 (9-(4-1)=6)。总净收益为 (7+6+6=19)。
样例 2
输入
2 10
4 2
输出
11
评分说明
每组包含多笔测试数据,只有答对该组的全部数据才能获得对应分数。
| 测试组 | 分值 | 限制 |
|---|---|---|
| 第一组 | 30 分 | (N=3) |
| 第二组 | 70 分 | 无特殊限制 |
| 测试点编号 | 层级 | N | M | 特殊性质 | 覆盖点 | 标准输出 |
|---|---|---|---|---|---|---|
| 1 | 弱数据 | 1 | 最小规模、单个正收益 | 基本读入与单次挖矿 | 1 | |
| 2 | 4 | 10 | 所有 gold[i]-i=0 |
无正收益时立即停止 | 0 | |
| 3 | 正常数据 | 5 | 三个矿点有效收益并列 | 并列最大值及多次递减 | 23 | |
| 4 | 6 | 8 | 正、零、负收益混合 | 下标成本、动态选取与多矿点切换 | 68 | |
| 5 | 极限数据 | 100000 | 5 | 数组上界规模,仅末尾矿点高收益 | 大规模扫描、最大下标成本、连续挖矿 | 499995 |