一不小心又开启了每天昏迷24个小时的状态,脑子不清醒的时候就该去看动画片。
只需要记录光标的位置即可,剩下的就是Splay的经典操作了,不多说了,我只是为了测试模板。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linke...
分类:
其他好文 时间:
2014-06-20 09:45:12
阅读次数:
201
很水的splay树。
会简单的操作即可。。。
#include
#include
#include
#include
#include
using namespace std;
#define maxn 1100000
#define mem(a,b) memset(a,b,sizeof(a))
#define root10 ch[ch[root][1]][0]
#define root1 c...
分类:
其他好文 时间:
2014-06-19 11:56:59
阅读次数:
328
先贴一份不怎么完善的模板,等刷一些题目熟悉之后再来完善。代码参考自kuangbin及cxlove两位大神。splay的基本功能题目:维护一个数列,支持以下几种操作:1. 插入:在当前数列第posi 个数字后面插入tot 个数字;若在数列首位插入,则posi 为0。2. 删除:从当前数列第posi 个...
分类:
其他好文 时间:
2014-06-19 00:38:25
阅读次数:
1154
伸展树是那么的迷人,总是让你在希望的时候WA,在绝望的时候AC。。。。。
做这个题没有之前,首先要了解树形结构转线性的做法。
推荐连接:http://blog.csdn.net/lyhypacm/article/details/6734748
本题做法:
对于本题的每一个最外层的盒子建立一颗伸展树。
对于move x y操作:
(1)把x为根的子树切下来。
(2)然后把切下来的子树放...
分类:
其他好文 时间:
2014-06-15 19:10:47
阅读次数:
302
链接线段树的水题,拿来学习一下splay.本题涉及到求最大值以及单点更新,折腾了许久,差不多把splay搞明白了。按位置建树,按位置是一颗排序二叉树,对于区间的操作非常方便,每次操作都将需要的结点转自根的右孩子的左孩子,因为加了2个结点,一个最小的,一个最大的,据说是为了防止越界。这题只有单点,所以...
分类:
其他好文 时间:
2014-06-14 19:58:36
阅读次数:
224
真的被这道题目恶心到了。。。281行代码。。。比一个模拟题还费事。。。
为了方便起见,在数列的前面和后面都加一个0点。
add x :把第k2+2个点旋转至root1.然后sum[root10]+=x;
reverse:把第k1+2个点旋转至root1.然后rev[root10]^=1;
insert x:得到第2个点,然后在第2个点之后插入x。
delete
:把第1个点旋...
分类:
其他好文 时间:
2014-06-14 00:54:26
阅读次数:
324
最基本的平衡树操作吧,第一次学splay的可以做一下只需要插入,删除,旋转,求前驱,后继这5个操作吧不喜欢用指针,用数组写的//HNOI2002营业额统计
#include#include#include#include#define INF 1key[root]],root,k); Spla...
分类:
其他好文 时间:
2014-06-13 20:10:15
阅读次数:
282
新学的,其实吧,就那么回事....看了几天,splay处理序列问题,真的非常厉害,翻转,插入,删除,线段树实现不了的功能,splay用起来很方便。POJ
3580 SuperMemo这题基本就是检验模板的题,各种操作都有,错了好多次,发现以前写的代码有错了的,数据水点,给水过了,注意pushup。S...
分类:
其他好文 时间:
2014-06-13 14:36:52
阅读次数:
213
不得不说块状数组好神奇的啊!这道题的标签可是splay的启发是合并(什么高大上的东西),竟然这么轻松的就解决了!var
x,y,i,j,tot,n,m,ch:longint; f,k,l,bl,go:array[0..200100] of longint;procedure
init; beg...
分类:
其他好文 时间:
2014-06-02 14:00:47
阅读次数:
260
标准的平衡树。贴个splay吧var v,l,r,fa:array[0..100000] of
longint; root,x,i,n,ans:longint;procedure zig(x:longint); var y,z:longint; begin
y:=fa[x];z:=fa[y]; if...
分类:
其他好文 时间:
2014-06-01 16:47:21
阅读次数:
335