luogu#P16819. [蓝桥杯 2026 国 Python B] 最小耗水定额

    ID: 17051 远端评测题 3000ms 512MiB 尝试: 0 已通过: 0 难度: 4 上传者: 标签>动态规划 DP数学贪心排序2026蓝桥杯国赛

[蓝桥杯 2026 国 Python B] 最小耗水定额

题目描述

国家储备林建设纳入国家规划。在工程实施过程中,某地区计划建设 nn 个生态林区,每个林区的预计耗水定额为 pip_i

为了优化资源配置,水利部门提供了两种水资源补偿方案。企业可以将这 nn 个林区划分为若干个批次进行建设(每个林区必须且只能属于一个批次,分组不要求保持原有顺序):

  1. 分步建设模式:如果一个批次中包含的林区数量少于 kk 个,则该批次内的每个林区均可获得 dd 单位的资源补贴(即该林区的实际耗水定额为 max(0,pid)\max(0, p_i - d))。
  2. 集约建设模式:如果一个批次中恰好包含 kk 个林区,则该批次中耗水定额最低的一个林区完全免费(实际耗水为 00),而该批次内的其余 k1k-1 个林区必须按原定额 pip_i 消耗,不再享受 dd 单位的定额补贴。

根据规定,每个批次最多只能包含 kk 个林区。

作为工程负责人,请你制定最优的分批建设方案,使得完成所有 nn 个林区建设所需的总耗水定额最小。

输入格式

第一行包含三个整数 n,k,dn, k, d,分别表示林区的数量、集约模式的门槛数量、以及分步建设模式的定额补贴。

第二行包含 nn 个整数 p1,p2,,pnp_1, p_2, \dots, p_n,表示每个林区的原始耗水定额。

输出格式

输出一个整数,表示完成建设所需的最小总耗水定额。

5 3 20
10 20 30 40 50
60

提示

【评测用例规模与约定】

对于 30%30\% 的评测用例,1n10001 \le n \le 10002k102 \le k \le 10

对于所有的评测用例,1n2×1051 \le n \le 2 \times 10^52kn2 \le k \le n0d1090 \le d \le 10^91pi1091 \le p_i \le 10^9