splay
cervoliu
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【HNOI2002】【BZOJ 1588】营业额统计
Description读一个数,求出前面的所有数与这个数的相差最小是多少。 N≤105N\leq 10^5Analysis线段树可以做,然而我用来splay练手 原本我不会模板,自己乱打,不成体统,这是下面是alan教我的方法 读入就insert,求出前驱后继,分别比较去较小,累计到答案。 insert是递归版的,大概就是在splay上面二分。 求pre和suf就把x旋到根,从根往下走即可原创 2016-09-21 12:39:45 · 406 阅读 · 0 评论 -
【CQOI2014】【BZOJ 3506】【JZOJ 3599】排序机械臂
Description 对于100%的数据 1<=n<=100000 ,1<=ai<=2,000,000,000Analysis首先排个序,求出每次找到最小的数是哪个,当然输出答案要记录size 然后可以模拟操作,翻转操作需要用到splay来维护。 具体过程就是弄一个翻转的lazy tag,做到一个点就执行down:如果tag=1就交换其左右子树,并且下传标记。 为了方便,把当前最小的数删除原创 2016-09-23 12:37:10 · 793 阅读 · 0 评论 -
【bzoj 3224】【Tyvj 1728】 普通平衡树
Description您需要写一种数据结构来维护一些数,其中需要提供以下操作: 1. 插入x数 2. 删除x数(若有多个相同的数,只删除一个) 3. 查询x数的排名(若有多个相同的数,输出最小的排名) 4. 查询排名为x的数 5. 求x的前驱(前驱定义为严格小于x,且最大的数) 6. 求x的后继(后继定义为严格大于x,且最小的数)n表示操作数,n<=100000,每个数的数原创 2017-01-06 21:47:50 · 615 阅读 · 0 评论 -
【JZOJ 4216】 平方和
Description给出一个N个整数构成的序列,有M次操作,每次操作有一下三种: ①Insert Y X,在序列的第Y个数之前插入一个数X; ②Add L R X,对序列中第L个数到第R个数,每个数都加上X; ③Query L R,询问序列中第L个数到第R个数的平方和。 Time Limits:2000msAnalysis插入的话,splay好做,平方和什么的区间维原创 2017-01-09 20:56:10 · 634 阅读 · 0 评论 -
【BZOJ 3223】文艺平衡树
Description您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 4 1 N,M<=100000Analysissplay拿来练翻转 这题就只用支持翻转,很裸 翻转区间[x,y]的操作: 提取该区间,打一个lazy tag,表示该区间要翻转。 当以后做的时候原创 2016-10-14 20:17:01 · 866 阅读 · 0 评论 -
【NOI 2005】【JZOJ 2413】维护数列 平衡树操作模板题
平衡树模板题splay操作大全原创 2017-01-24 12:16:28 · 594 阅读 · 0 评论 -
【JZOJ 4986】 神秘物质
DescriptionAnalysis某神奇帝都OI冬令营的题 max x y相当于整个区间的最大减最小 min x y相当于相邻两个数差值最小值 insert,merge什么的splay维护 比赛的时候没时间拍了结果过掉了。。。 为什么OI比赛中要出板题==Code#include<cstdio>#include<cmath>#include<cstring>#include<al原创 2017-02-25 16:17:19 · 878 阅读 · 0 评论 -
【51nod 1816】 小C的二分图 口胡题解
Description小C有一个特殊的二分图(有着X部与Y部)。 对于一个X部的点x,对应在Y部的相邻点只会是一个连续区间。 然后你需要找一个最大匹配,这个匹配经过小C的膜法也变得特殊了。 两个匹配边只有当不相交时候才是小C的匹配(即对于一个比配xi->yi,xj->yj,如果xiAnalysis题意转化,N个数,每个数有取值区间[xi,yi],求最长上升子序列 一眼sb dp f[i]表原创 2017-04-07 20:38:27 · 555 阅读 · 0 评论
分享