题目大意
每次操作可以将任意个舞台灯光亮度 +1+1+1 或 −1-1−1 ,求所有舞台灯光调整为目标值的最少操作次数。
解题思路
首先我们会发现,如果同时对第 iii 个舞台使用 +1+1+1 操作和 −1-1−1 操作,答案一定不会变得更优。因此我们可以将所有数分成两类,一类只使用 +1+1+1 操作,一类只使用 −1-1−1 操作。
所以我们可以对每一个舞台都分别计算出只用 +1+1+1 操作和 −1-1−1 操作,并用 pair<int,int> 存储,按照第一关键词排序,此时不难发现,如果第 iii 个舞台灯光只用 +1+1+1 操作最优,那么 [1,i][1,i][1,i] 的舞台灯光都用 +1+1+1 操作最优,剩下的 [i+1,n][i+1,n][i+1,n] 都用 −1-1−1 操作。
因此可以预处理使用 −1-1−1 操作的后缀 maxmaxmax ,枚举分界点 iii ,计算第 iii 的花费和 i+1i+1i+1 的后缀 maxmaxmax 之和,统计最小值即可。
参考代码