LuoGu P3165 排序机械臂【Splay树区间翻转】
题目连接题目描述:题解:首先为了方便1~n的翻转,在区间左右加两个哨兵下标分别为1和n + 2,值分别为-INF和INF,然后中序建树,根节点为(1 + n + 2) >> 1,由于在区间中找的数是从小到大排列,所以可以对输入数据进行排序,用一个结构体让下标也跟着被排序(每个数的下标也是在Splay树中的下标),然后遍历排序后的数组,每次将该值的下标旋转到根,根左子树的大小即为答案ans,然后找到应该翻转的区间:左边界为区间第 L = i 个值 (i从2开始,i = 1为哨兵),右边界
原创
2020-09-01 10:21:18 ·
159 阅读 ·
0 评论