首页 > 其他 > 详细

HDU 3436 Queue-jumpers (Splaytree)

时间:2014-02-17 06:46:03      阅读:364      评论:0      收藏:0      [点我收藏+]

题意:有n个人,编号分别为1~n,从小到大排成一列,有q次操作。 (n <= 10^8, q <= 10^5)

Top操作:  把编号为x的人拿出来放到最前面。

Query操作: 问编号为x的人现在在第几个。

Rank操作: 问第x个人编号为多少。


思路:把Top操作和Query操作的所有数离散化下,然后把n个人分成一个个区间,比如6个人,离散化编号4, 5的人,则分成区间(1, 3) (4, 4), (5, 5), (6, 6),保存好离散化的人在伸展树节点的下标,然后把区间建成伸展树就可以了。又被一个小细节坑了好久,调了好久,就是把节点放到最前面的时候我是先把它删除,然后在插入到最前面,可是我插入到最前面的时候忘了修改它的父亲导致debug好久才发现。。每个细节都不能出错才行啊。。



HDU 3436 Queue-jumpers (Splaytree)

原文:http://blog.csdn.net/jayye1994/article/details/19290455

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!