正题
题目链接:https://www.luogu.com.cn/problem/CF1615H
题目大意
有 n n n 个点,每个点有个初始权值 a i a_i ai ,你每次可以让一个点权值 + 1 +1 +1 或者 − 1 -1 −1 。
有 m m m 个限制要求某个点最终权值小于等于另一个点。
求最少的操作次数使得满足所有限制。
2 ≤ n , m ≤ 1000 , 1 ≤ a i ≤ 1 0 9 2\leq n,m\leq 1000,1\leq a_i\leq 10^9 2≤n,m≤1000,1≤ai≤109
解题思路
对于这类的保序回归问题,我们可以考虑整体二分,当前枚举到 m i d mid mid 时我们考虑将点权设为 m i d mid mid 或者 m i d + 1 mid+1 mid+1 时的最优情况,如果在这种情况下某个点被设置为 m i d mid mid 则最终值在 [ l , m i d ] [l,mid] [l,mid] 中,否则在 [ m i d + 1 , r ] [mid+1,r] [mid+1,r] 中。
然后我们考虑