社区讨论

帮我写一下自己想的这道题(代码到时候私信我)

学术版参与者 3已保存回复 5

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
5 条
当前快照
1 份
快照标识符
@mhjteecm
此快照首次捕获于
2025/11/04 08:12
4 个月前
此快照最后确认于
2025/11/04 08:12
4 个月前
查看原帖

爆破计划

题目背景

美好的一天,生电大佬小 kk 正在挖矿...

题目描述

kk 需要在一个由 nn 个连续矿洞组成的峡谷中爆破开采矿物。第 ii 个矿洞中的矿物价值为 viv_i ,但引爆 TNTTNT 时会触发连锁反应。具体地,对于每 11 个单位时间:
  • 若在矿洞 ii 放置 TNTTNT 并引爆,会波及 [ik,i+k][i−k,i+k] 范围内的所有矿洞(超出边界则截断),且后续 1010 个单位时间内无法在同一波及范围内再次爆破
  • 每次爆破的基础成本cc ,但可通过优化降低实际成本:若当前爆破点 viv_i 与上一次爆破点 vjv_j 的距离满足 vivj>k|v_i−v_j| > k ,则获得 (ij)2(i−j)^2 的效率增益,实际成本c(vivj)2c − (v_i−v_j)^2
现在,给定矿洞序列 v1v_1 , v2v_2 ... vnv_n 、基础成本 cc 、波及半径 kk ,求小 kk 能获得的最大净收益 mm(既指可获得的最大矿物价值之和 ss − 总爆破成本 ff )。

输入格式

11 行,输入矿洞个数 nn , 波及半径 kk , 基础成本 cc
22 行,输入 nn 个正整数 v1v_1 , v2v_2 ... vnv_n ,表示第 11nn 个矿洞中,第 ii 个矿洞的价值为 viv_i

输出格式

仅一行,一个正整数 mm , 表示小 kk 可获得的最大净收益。

输入输出样例 #1

输入 #1

CPP
5 1 10
3 5 2 8 4

输出 #1

CPP
12

说明/提示

对于 100%100\% 的数据,1kn2×1051 ≤ k ≤ n ≤ 2×10^5 , 1c1091 ≤ c ≤ 10^9 , 0vi1060 ≤ v_i ≤ 10^6

回复

5 条回复,欢迎继续交流。

正在加载回复...