
数据结构--平衡树--非旋转treap
文章平均质量分 60
ez_yww
这个作者很懒,什么都没留下…
展开
-
【BZOJ1014】【JSOI2008】火星人prefix 哈希 非旋转treap
题目大意 就是给你一个字符串,有三种操作,共mm个 Q x yQ~x~y:询问第xx个后缀和第yy个后缀的LCP R x yR~x~y:把第xx个字符改成yy I x yI~x~y:在第xx个字符后面插入一个字符yy m≤150000,m\leq 150000,任何时候字符串长度≤100000\leq 100000,询问个数≤10000\leq 10000题解 直接用平衡树维护哈希原创 2017-09-22 10:23:19 · 365 阅读 · 0 评论 -
【BZOJ2333】【SCOI2011】棘手的操作 treap合并
题目大意 有nn个节点,标号从1到nn,这nn个节点一开始相互不连通。第ii个节点的初始权值为aia_i,接下来有如下一些操作: U x yU~x~y:加一条边,连接第xx个节点和第yy个节点。 A1 x vA1~x~v:将第xx个节点的权值增加vv。 A2 x vA2~x~v:将第xx个节点所在的连通块的所有节点的权值都增加vv。 A3 vA3~v:将所有节点的权值都增加vv。 F1原创 2017-11-03 16:07:30 · 328 阅读 · 0 评论 -
启发式合并&线段树合并&treap合并&splay合并
启发式合并 有nn个集合,每次让你合并两个集合,或询问一个集合中是否存在某个元素。 我们可以用平衡树/set维护集合。 对于合并两个A,BA,B,如果|A|<|B||A|<|B|,那么我们就把AA中的每个元素暴力加到BB中,否则就把BB中的元素暴力加到AA中。 对于一次把AA中的每个元素暴力加到BB中的操作,|A||A|会变成|A|+|B||A|+|B|,也就是说大小至少会翻倍,所以原创 2017-08-13 19:48:06 · 4765 阅读 · 0 评论