Splay
Jiahe Xu
为何要去攀登珠穆朗玛峰,因为她就在那里啊.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj1588: [HNOI2002]营业额统计 SBT&&Splay
所有操作都有,就当练手吧。。。貌似数据有问题,要特判一下。#include #include #include #include #include #include using namespace std; #define maxn 1000000 int root,ls[maxn],rs[maxn],siz[maxn],val[maxn]; int n,cnt,m; bool vis原创 2014-12-13 22:32:48 · 790 阅读 · 0 评论 -
bzoj1208: [HNOI2004]宠物收养所 SBT&&Splay
初次写SBT。。。。。感觉sbt跟线段树一样,多写写就熟了。#include #include #include #include #include using namespace std; #define maxn 1100000 #define mod 1000000 #define INF 1e9 int root,siz[maxn],val[maxn],ls[maxn],rs[m原创 2014-12-12 23:18:29 · 957 阅读 · 0 评论 -
bzoj3223: Tyvj 1729 文艺平衡树 splay裸区间旋转
模板题。 从0开始到n+2结束。 每次把起点前一个点置为跟,右端点的下一个点作为跟的右节点,这样跟的右节点的左节点就是操作的区间,pushdown和pushup和线段树的很类似。#include #include #include #include #include using namespace std; #define maxn 110000 int root,siz[maxn]原创 2014-12-22 23:43:26 · 547 阅读 · 0 评论 -
poj3468A Simple Problem with Integers Splay版
练练splay的lazy操作。惊奇的发现在select的时候pushdown效率比一边更新一边pushdown高。。。。#include #include #include #include #include using namespace std; #define maxn 110000 typedef long long sint; sint sum[maxn]; int lazy[原创 2014-12-23 22:05:13 · 586 阅读 · 0 评论 -
bzoj1014: [JSOI2008]火星人prefix splay
spaly+hash,我的hash方式有点慢。。。。。#include #include #include #include #include using namespace std; #define maxn 200000 typedef long long sint; #define mod 9875321 int tr[maxn][2],fa[maxn],id[maxn]; int原创 2014-12-29 20:47:19 · 1183 阅读 · 0 评论 -
2017东北地区赛D题 splay
题意:25W个序列 支持三个操作: 1 给你一个长度为偶数的区间 交换区间相邻的元素 区间里 第1个和第2个换 第3个和第4个换 第5个和第6个换 2 给你一个长度为奇数的区间 将区间翻转 3 求区间的和 题解:将区间元素按下标奇偶分成2个splay 对于第1个操作直接交换区间 第2个操作由于是奇数长度的区间 所以把范围两个splay内的区间直接翻转就好了 PS:场上没有想到按奇偶分组原创 2017-05-17 23:29:06 · 668 阅读 · 0 评论 -
LCT介绍
偶然看到了LCT,发现好多东西都忘了,今天就来写写LCT总结吧。 LCT=link-cut-tree 在树链剖分里我们把树按dfs序换成连续序列,再来解决树上两点间路径操作的问题。很明显,假如树的结构变了,那么原来的树链剖分就GG了。为了解决可以增边的问题我们引进LCT。 LCT的基本思想就是把树链剖分里的重块都存到一颗splay里,以splay的灵活性来解决删边加边的问题(无论原图怎么删都得原创 2017-07-07 20:08:59 · 1436 阅读 · 0 评论 -
spoj-QTREE3 LCT
题目大意:一棵树分为黑点和白点,可以改变一个点的颜色,问从1到v的路径上第一个黑点是哪个点 LCT做法:把黑点col记作1,sum[x]记录x点子树右多少个黑点,我们可以用LCT把1到x路径上所有的点组成一个splay,然后在splay上找关键字最小的点就可以了,不难发现这个题就算找路径上第k个点也是很容易实现的。#include using namespace std; #define ma原创 2017-07-08 10:08:46 · 507 阅读 · 0 评论
分享