CF2097E.Clearing the Snowdrift
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
男孩 Vasya 非常喜欢旅行。特别是乘坐飞机旅行给他带来了极大的快乐。他正要飞往另一个城市,但跑道被厚厚的积雪覆盖,需要清理。
跑道可以表示为编号从 1 到 n 的 n 个连续区域。暴风雪相当猛烈,但现在已经停止,因此 Vasya 计算出第 i 个区域覆盖了 ai 米厚的积雪。针对这种情况,机场有一台工作方式相当特殊的扫雪机。每分钟,扫雪机可以执行以下操作:
- 选择一个长度不超过 d 的连续区段,并从积雪最多的区域中移除一米积雪。具体来说,可以选择 1≤l≤r≤n(r−l+1≤d)。然后计算 c=max{al,al+1,…,ar},如果 c>0,则对于所有满足 ai=c 的 i:l≤i≤r,将 ai 的值减一。
Vasya 为这次飞行准备了很长时间,他想知道自己还需要等待多少时间才能让所有区域完全清除积雪。换句话说,需要计算扫雪机将所有区域的积雪清除(即对所有 i 从 1 到 n 满足 ai=0)所需的最少分钟数。
输入格式
每个测试包含多个测试用例。第一行输入测试用例数量 t(1≤t≤2⋅105)。接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 d(1≤n≤5⋅105,1≤d≤n)——跑道的区域数量和扫雪机可以选择的区段的最大长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(1≤ai≤109),其中 ai 表示第 i 个区域的积雪厚度。
保证所有测试用例的 n 之和不超过 5⋅105。
输出格式
对于每个测试用例,输出一个整数——扫雪机将所有区域的积雪清除所需的最少分钟数。
输入输出样例
输入#1
2 5 2 1 5 2 1 2 3 1 1000000000 1000000000 1000000000
输出#1
8 3000000000
说明/提示
在第一个测试用例中,存在一个最优的操作序列。首先,选择区段 [2,3] 四次。经过三次操作后,a2 将变为 2,数组 a 将变为 [1,2,2,1,2]。第四次操作后,数组 a 将变为 [1,1,1,1,2]。接下来,可以通过依次选择区段 [1,2]、[3,3]、[5,5] 和 [4,5] 将数组清零。
在第二个测试用例中,d=1,这意味着每个区域需要独立清除,答案等于所有 ai 的总和。
翻译由 DeepSeek V3 完成
输入解题思路,AI测评打分。不知道怎么写?