第 K 大区间
$Description$
$Solution$
挺妙的一道想法题。
只想到了要离散化去重、桶,二分真的没想到,看了题解发觉十分精妙,便记录一下。
观察数据范围,可以发现要离散化,然后求区间众数,可以考虑用桶。
关键在于如何优化求解第 $k$ 大区间的过程。
可以二分区间众数的值,判断是否有 $>= k$ 个大于 $mid$ 值的区间众数,有的话就满足要求。
这其实就是把本来要求的第 $k$ 大的值 $>=mid$ 转化为有 $k - 1$ 个区间众数值 $<= mid$ ,从而使本题能够二分求解。
同时,在二分答案的过程中,我们用到了尺取法求出区间众数值 $>= mid$ 的区间个数,因为本题所求的东西满足单调性,答案不会减小,因此可以采用尺取法,做到 $\Theta(n)\ Check$ 。
$Code:$
1 |
|