随笔分类 -  平衡树

摘要:T1 抓牛 你在 $n$ ,牛在 $k$,你一步可以走到 $n-1,n+1,2 \times n$,问最少几步能抓到牛 sol:dp $f_i$ 表示走到 $i$ 最少走了几步 当 $i \leq n - 1$ 时,显然 $f_i = f_{i+1} + 1$(因为只能一步一步走过去) $i$ 在 阅读全文
posted @ 2018-11-02 18:46 探险家Mr.H 阅读(222) 评论(0) 推荐(0)
摘要:有些纪念意义的题 $N$个点$M$条边的无向图,$Q$次询问保留图中编号在$[l,r]$的边的时候图中的联通块个数,强制在线。 $N,M,Q \leq 200000$ 受某远古$CF$题的影响,大力$LCT$硬搞 一个神奇的做法: 令每条边边权为加入时间 搞一个数组$used$,加边的时候如果形成了 阅读全文
posted @ 2018-02-22 19:25 探险家Mr.H 阅读(232) 评论(0) 推荐(0)
摘要:您需要写一种数据结构,来维护一个有序数列,其中需要提供以下操作:1.查询k在区间内的排名2.查询区间内排名为k的值3.修改某一位值上的数值4.查询k在区间内的前驱(前驱定义为小于x,且最大的数)5.查询k在区间内的后继(后继定义为大于x,且最小的数) 应xgy的邀来码树套树了...今天或许能码完这一 阅读全文
posted @ 2017-12-11 19:26 探险家Mr.H 阅读(393) 评论(2) 推荐(0)
摘要:吉老师的题还真是难呢... 正解至今不会,只会平衡树的做法 这种用平衡树上一个点表示一段区间的题还真要做做...想起来挺难受的 建n棵平衡树表示每行的m-1个元素 再建一棵平衡树维护最后一列 中间要支持一个split操作,就是把[l,r]分成[l,x-1],x,[x+1,r]三部分,很好做 相比于b 阅读全文
posted @ 2017-12-07 18:55 探险家Mr.H 阅读(165) 评论(0) 推荐(0)
摘要:暖气来啦~ 动态树维护最大生成树裸题 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> #include<algorithm> using namespace std; in 阅读全文
posted @ 2017-12-05 13:42 探险家Mr.H 阅读(196) 评论(0) 推荐(0)
摘要:打脸了...Splay其实有两种用法,第一个是常数奇大的平衡树 而第二个就厉害了,Splay可以对区间进行操作 具体是怎么个意思呢,我们来看这样一件事情 对于一个数列,我们用Splay维护它的下标 然后我们进行下面的Split操作 1.将l-1旋转到根 2.将r+1旋转到l-1的右儿子 令a为r+1 阅读全文
posted @ 2017-12-04 22:31 探险家Mr.H 阅读(240) 评论(0) 推荐(0)
摘要:树剖,也被称作“静态树”是用线段树维护树上每条链的信息 而Link-Cut Tree用Splay森林维护树上的动态信息 先明确几个定义 1.重儿子 这里指推广之后的重儿子,满足I,II两条性质 I:重儿子和它的父亲在同一棵Splay中 II:一个节点最多有一个重儿子 2.重边 连接重儿子和它父亲的边 阅读全文
posted @ 2017-12-03 21:10 探险家Mr.H 阅读(390) 评论(1) 推荐(0)
摘要:听说NOI系列考试不能用平板电视 所以手写了一个无旋Treap 有可能之后进化成fhq Treap 谁知道呢 bzoj3224 阅读全文
posted @ 2017-11-28 20:58 探险家Mr.H 阅读(193) 评论(0) 推荐(0)
摘要:...强迫症终于A了这道题 bzoj前30道全A指日可待 splay维护这个结点控制的字符串的hash值 每次旋转重新算一遍就可以了 查询的时候跑一个二分 讲起来很简单但是还是调了1h才调对了splay 把main写完饺子都凉了 没写过几次平衡树 常数写的奇大 能递归的我都递归了。。。 字符串哈希因 阅读全文
posted @ 2017-11-25 18:00 探险家Mr.H 阅读(280) 评论(0) 推荐(0)
摘要:Splay版本的会补。。。 在学了2个小时Splay之后深感Treap的优越 特地又花了20分钟打了个Treap 至于这些平衡树的优缺点 可以用平衡方式来直观的感受到 现在平衡树们面对着这样的一个问题:“二叉搜索树退化成O(n)”怎么办 Splay说:下面退不退化我不管 我把要查询的点转到根节点上 阅读全文
posted @ 2017-11-03 23:24 探险家Mr.H 阅读(334) 评论(0) 推荐(0)
摘要:Splay查前驱后继 小tips:在bzoj上while(scanf)这种东西可以让程序多组数据一起跑 反正没加我就t了 阅读全文
posted @ 2017-11-03 20:29 探险家Mr.H 阅读(223) 评论(0) 推荐(0)