题意
排队买票,依次给出当前人要插队的位置,每个人有个编号,然后问你最后整个的序列是什么?
分析
最后一个人的要插入的位置是确定的,所以逆序遍历,线段树结点存储的是当前区域的空位置数量。我们就可以倒着来插,最后一个固定后,如果倒数第二个插入的位置小于当前的空格数,那么就往前插到序号上,否则往后插,往后的话序号需要减去当前这个数左边的空位数。因为左右都是从0位置开始标记的,因此结构体里需要维持节点左右边的空位个数,(当前插队序号小于左边空位插左边,大于的话插右边,但是需要需要减去左边空位)。因为右边也是从0位置开始算起的。
#include #include #include #include #include #include #include #include