CF1827B2 Range Sorting (Hard Version) 题解

发现选择的区间不包含且不相交,于是区间的形式为选一段空一段。

考虑到 rlr-l 即为每个区间 [i,i+1][i,i+1] 的贡献。

于是考虑 [i,i+1][i,i+1] 什么时候不选,发现当左段的最大值小于右端的最大值时,[i,i+1][i,i+1] 不选更优。

于是枚举左段的最大值 xx,位置为 bb,要求右段的最小值比 xx 大。

维护 set 找到前一个比 xx 大的数的位置 aa,后一个比 xx 大的数的位置 cccc 后面第一个比 xx 小的数的位置 dd

那么左段的左端点可以在 (a,b](a,b] 中选,右端点为 c1c-1,右段的左端点是 cc,右端点在 (c,d](c,d] 中选,贡献为 (ba)×(dc)(b-a)\times (d-c)

时间复杂度 O(nlogn)\mathcal O(n\log n)

posted @ 2023-05-18 13:28  蒟蒻orz  阅读(3)  评论(0编辑  收藏  举报  来源