ACM_伸展树
JayYe
这个作者很懒,什么都没留下…
展开
-
POJ 3468 A Simple Problem with Integers (伸展树区间更新求和操作 , 模板)
强大无比的Splaytree!指针版本的比静态数组的快1s多。。原创 2013-08-16 15:06:33 · 1381 阅读 · 0 评论 -
BZOJ 1503 [NOI2004]郁闷的出纳员 (Splaytree)
用Splaytree实现插入,删除一个区间,求小于某值的个数。题意有个坑。。初始工资小于工资下届不计入离开公司的总数。。#include const int maxn = 100000+10;const int INF = 1<<30;#define lson x->ch[0]#define rson x->ch[1]#define ket (roo原创 2014-02-13 21:29:34 · 1100 阅读 · 0 评论 -
BZOJ 1588 [HNOI2002]营业额统计 (Splaytree)
用Splaytree实现基本的插入,求前驱,求后继操作。数据有问题。。。有些数据输入n后,后面没有n个数,后面没有的数全都当成0才可以过。#include #include using namespace std;typedef long long ll; #define lson x->ch[0]#define rson x->ch[1]#defi原创 2014-02-13 21:33:06 · 903 阅读 · 0 评论 -
BZOJ 1208: [HNOI2004]宠物收养所 (Splaytree)
用Splaytree实现插入一个节点,删除一个节点,求第k大的数,求小于某值的个数,还是挺好玩的,注意这题答案要mod一下。#include #include using namespace std;typedef long long ll; const int maxn = 80000 + 10;const int mod = 1000000;con原创 2014-02-14 18:07:08 · 1158 阅读 · 0 评论 -
HDU 1754 I Hate It (Splay tree和Segment tree)
线段树的模版题,求区间最值和修改一个值,用Splaytree来写更简单!伸展树code:#include #include using namespace std;#define lson x->ch[0]#define rson x->ch[1]#define ket (root->ch[1]->ch[0])const int maxn = 2原创 2014-02-14 18:12:23 · 1050 阅读 · 0 评论 -
HDU 1890 Robotic Sort (Splaytree 区间翻转)
第一道区间翻转的Splaytree题,其实和线段树差不多的,标记一下,该down的时候down就行了,记录每个数在伸展树中的下标然后从根到节点push down下去。不过有一个小错误倒是让我调了好久,我是加了两个边界点-1的,这样子比较好处理区间,找到那个数后Splay到根,然后要标记下左边的数,如果直接root->ch[1]->mark ^= 1会把-1也翻转,而我刚开始直接翻转所以各种出错。所原创 2014-02-15 23:30:20 · 1426 阅读 · 4 评论 -
HDU 3436 Queue-jumpers (Splaytree)
题意:有n个人,编号分别为1~n,从小到大排成一列,有q次操作。 (n Top操作: 把编号为x的人拿出来放到最前面。Query操作: 问编号为x的人现在在第几个。Rank操作: 问第x个人编号为多少。思路:把Top操作和Query操作的所有数离散化下,然后把n个人分成一个个区间,比如6个人,离散化编号4, 5的人,则分成区间(1, 3) (4, 4), (5, 5),原创 2014-02-16 17:31:15 · 1104 阅读 · 0 评论 -
ZOJ 3765 Lights (伸展树)
伸展树裸题,做了几题后已经不需要调了,像前几次经常调个好久。。听说可持久化treap更好用,调起来方便,下次学一下。code:#include #include using namespace std;#define lson x->ch[0]#define rson x->ch[1]#define ket (root->ch[1]->ch[0])con原创 2014-03-03 21:12:17 · 1786 阅读 · 3 评论