P2824 排序(二分答案)

题目简述


给出一个 \(1\)\(n\) 的排列,现在对这个排列序列进行 \(m\) 次局部排序,排序分为两种:

  • 0 l r 表示将区间 \([l,r]\) 的数字升序排序
  • 1 l r 表示将区间 \([l,r]\) 的数字降序排序

这里是对下标在区间 \([l,r]\) 内的数排序。
最后询问第 \(q\) 位置上的数字。

分析 & 性质


  • 申必题,01串可以找出一些性质,所以可以做。

  • 对于01序列可以在 $O(n\log{n}) $完场排序,对于最后的结果,具有单调性。相当于寻找一个值 \(k\) ,在最终的结果中在 \(d\) 位置出现,并且小于 \(k\) 的数不出现。

  • 还有同样一题,在上一层为下层相邻三个数的中位数,求最上面的数。这题也是二分答案加上01串的特殊性质,仔细观察可以发现俩性质: 相邻三个数,上传出现两个相同的;对于连续的一段;两个相邻的相同数,会你踩我我踩你一直上传;所以可发现:一段连续段至少会上传到这一段的顶部,所以对于位于中间的连续段,一定是这个数,当中间没有连续段时(这里说的比较笼统,界定一下就是01交错,这种序列上传之后还是01交错,并且会与旁边形成连续段)一定会上传一个离中心较近的数。同样做法,二分答案即可

最终思路


  • 同上,使用线段树维护即可
细节 :
posted @ 2023-07-12 16:26  langligelang  阅读(12)  评论(0编辑  收藏  举报