站外题求助
  • 板块学术版
  • 楼主sundyLIUXY
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/2/5 09:59
  • 上次更新2023/10/24 01:39:33
查看原帖
站外题求助
706737
sundyLIUXY楼主2023/2/5 09:59

给一个1到n的全排列,对它进行m次局部排序,排序分为两种:

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

排序全部完成后询问q位置上的数字


老师在课上说: 首先二分答案,设答案为x,把序列中比x大的数记为1,比x小的数记为-1,和x相等的数记为0。最后只需判断q位置上的数是不是0。

这样所有的局部排序操作都可以转换为区间赋值,记录每个区间内1,0,-1的个数,用线段树维护。


: )不理解 为什么只需要标记哪些数比x大,哪些数比x小就可以把局部排序操作转换成区间赋值?为什么q位置上为1的最大的x就是答案?

2023/2/5 09:59
加载中...