题解:CF2057D Gifts Order

传送门

Statement

单点修改,全局查询所有 \([l,r]\) 中区间极差减去区间长度的最大值,多组数据。

Solution

首先,如果区间的最大 / 最小值出现在区间中间,区间长度的改变并不会对其造成影响,反之,当最大值出现在区间左右端点时,区间长度改变可能会产生影响。

在保证区间最大 / 最小值存在于区间端点同时需要保证区间长度最小,这样为最优方案。

设区间最小值在右端点,最大值在左端点,答案:

\[(a_l - a_r) - (r - l) = (a_l + l) - (a_r + r) \]

最小值在左端点,最大值在右端,答案:

\[(a_r - a_l) - (r - l) = (a_r - r) - (a_l - l) \]

我们令 \(x_i = a_i - i,y_i = a_i + i\),最后答案:

\[\max\{\max_{l<r}\{x_r - x_l\},\max_{l<r}\{y_l - y_r\}\} \]

区间最大 / 最小值可以拿线段树维护,然后再维护一个答案即可。

code

Submission

posted @ 2025-01-06 09:15  Alec_Ayaka  阅读(1)  评论(0编辑  收藏  举报