伸展树是一种强大的数据结构,由于其特性,可以很好地模拟队列的插队等操作,而线段树解决这类问题通常需要转化一下,比较伤脑筋 而用伸展树的解决方法就是先建好一颗节点数等于队列长度的树,每个队列元素在队列中的排名就是这个元素在伸展树中的结点号 那么询问 i 在队列中的排名:splay(i,0), rank=size[ch[root][0]]+1; 询问队列中第 i 个元素是什么:在伸展树中找到第i个元素,其节点号就是答案 hdu1890:有两种操作:模拟队列:把结点i移到队列最前面(删除根结点+移点操