港口——差分与贪心
题目描述
港口有 n n n堆货物,他们的重量分别为 w 1 , w 2 , ⋯ , w n w_1,w_2,\cdots,w_n w1,w2,⋯,wn,每堆货物的重量不一定相同。
吊车师傅每次操作可以使任意第 l l l堆到第 r r r堆的货物都增加一个重量或者减少一个单位重量。请问吊车师傅最少需要执行几次操作可以使 n n n堆货物重量都相同。
输入格式
第一行输入正整数 n n n。
第二行输入 n n n个整数,第 i i i个整数表示 w i w_i wi 。
输出格式
共一行,输出最少操作次数。
输入样例
5
0 1 1 1 0
输出样例
1
数据规模
对于 100 % 100\% 100%的数据, 1 ≤ n ≤ 100000 1 \leq n \leq 100000 1≤n≤100000, 0 ≤ w i ≤ 1 0 9 0 \leq w_i \leq 10^9 0≤wi≤109
题目解答
我相信已经有很多大佬看出这是一道差分板子题,但我们这些蒟蒻现在肯定是无从下手。那我们就从简单的开始,先假设 n = 2 n=2 n=2:
- 可以发现,答案就是如图灰色部分,也就是 ∣ w 1 − w 2 ∣ |w_1-w_2| ∣w1−w2∣。那如果 n = 3 n=3 n=3呢?
- 如果 w w w数组是单调的,那么结果就是 ∣ w 1 − w 2