
平衡树
xxb3.1415
咸鱼
展开
-
P1486 [NOI2004]郁闷的出纳员 fhq-Treap
题目链接维护四个操作I k 新建一个工资档案,初始工资为 k。如果某员工的初始工资低于工资下界,他将立刻离开公司。A k 把每位员工的工资加上k 。S k 把每位员工的工资扣除 k。F k 查询第 k 多的工资。对于A和S操作,我们直接用一个值lazy来记录所有数变化是多少,当插入一个数的时侯我们改为插入k-lazy。k小于min的不加入,查询第k多的记得加上lazy。删除操作就直接分裂然后删除即可,记录每次删除的数的个数。#include<bits/stdc++.h原创 2020-10-07 21:43:21 · 186 阅读 · 0 评论 -
fhq-Treap题目记录
文章目录模板P6136 【模板】普通平衡树(数据加强版)文艺平衡树可持久化平衡树书架P3850 [TJOI2007]书架模板自己用的可持久化Treap的板子, 改掉split的可持久化就可以当成普通的来用了。// 使用前插入-INF, 和INF。若不需插入,涉及的排名的地方有加一减一的问题 普通版fhq-treap在split中去掉可持久化就可以。struct fhq_Treap{ struct { int val, siz, l, r, rnd;}T[N*60]; int cnt, x原创 2020-10-06 17:00:06 · 197 阅读 · 0 评论 -
Splay学习笔记,每个操作都会执行splay。
文章目录前言平衡树Zig和Zag引入splay操作前言之前学了fhq—Treap,一种靠分裂与合并维护平衡的一种树,期望复杂度是logn,常数也较大。Treap也有带旋转版本的,但是为了早日学会LCT还是先学Splay。也建议初学者先学不带旋转的平衡树,当然还有更简单的替罪羊树也可以先学。先借简单的来了解为什么要这样做。然后学更难的就跟好理解了。平衡树BST(二叉搜索树)的缺点是容易被卡成链,所以我们想要通过某种方法来使它的树高不那么任意被卡。我理解的平衡树就是为了使BST保持平衡,即树的高度期望是原创 2020-10-06 00:45:46 · 456 阅读 · 0 评论