P4747 [CERC2017]Intrinsic Interval

P4747 [CERC2017]Intrinsic Interval

题目大意

给一个排列,值域连续段定义为对于排列的一个区间,这个区间元素的值排序后是连续的。

每次询问一个区间,问包含这个区间的最短值域连续段是哪个

数据范围

(1 le n, q le 1 imes 10^5)

解题思路

去年不理解,现在感觉好多了

首先经典结论值域连续段的必要条件是 (max-min=R-L)

再进行观察,发现如果两个值域连续段相交,那么交集也是值域连续段。

那么就可做多了,枚举右端点,第一个能包含询问区间的的值域连续段就是答案了。

用大根堆维护左端点,每次取出最大的左端点,在线段树上二分得到最近的可以包含它的值域连续段,然后没了。

原文地址:https://www.cnblogs.com/Hs-black/p/14000945.html