给一个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就是答案?