长度为 g 的所有连续工位段读数之和相等,等价于序列以 g 为周期,即下标模 g 相同的工位最终必须取同一个值。一次校准只能把某个读数加 1,因此每一组(下标 ≡r(modg))只能把所有读数抬到不小于该组当前最大值的某个公共值。
先把每一组齐到该组当前最大值,花费为 max⋅cnt−sum。若总花费超过 d,则不可能,输出 −1。否则剩余校准次数可以全部加到同一组上(每组工位数为 cnt,该组还能整体再抬 ⌊drest/cnt⌋)。对所有组取最大值即可。
时间复杂度 O(n),空间复杂度 O(n)。
精密装配线上有 n 个工位,第 i 个工位的节拍读数为 ai。工艺标准把序列称为 g 节拍均衡:每一个长度为 g 的连续工位段,读数之和都必须相等。每次校准只能把某一个工位的读数加 1,且最多校准 d 次。请在完成均衡后,最大化所有工位读数中的最大值;若即使用完 d 次校准也无法达到均衡,输出 -1。
约束:1≤n,d≤105,1≤g≤n,−1000000000≤ai≤1000000000。
第一行三个整数 n、g、d,分别表示工位数、节拍长度以及校准次数上限。 第二行 n 个整数 a1,a2,…,an,表示各工位读数。 保证 1≤n,d≤105,1≤g≤n,−1000000000≤ai≤1000000000。
Scan the QR code below with WeChat to sign in
First-time scan will create your account automatically
请使用微信扫描下方二维码完成注册