
数据结构-平衡树
Dream_Lolita
退役OIer,转战ACM
展开
-
【splay+扫描线】CERC2017-B-Buffalo Barricades
【题目】 原题地址 题目大意:给出nnn个点(x,y)(x,y)(x,y),有qqq个操作(a,b)(a,b)(a,b),先求出有多少个不被栅栏挡住的点满足x<=ax<=axy<=by<=by(a,b)(a,b)(a,b)这个点作为右上角形成一个7字型的栅栏,遇到之前的栅栏或者坐标轴就结束。【题目分析】 一开始看这道题,感觉是线段树在xxx轴和yyy轴维护交点之...原创 2018-04-12 21:53:49 · 438 阅读 · 0 评论 -
【平衡树】CC_TASUFFIX Very Long Suffix Array
【题目】CC给定一个长度为nnn的sasasa数组,有两种操作:翻转一段区间将一段区间移动到开头求有多少个本质不同的字符串符合最后得到的sasasa,字符串本质不同的意思是不存在一种方式重标号(相同字符标号一样)后两个字符串相同。n≤109,m≤105n\leq 10^9,m\leq 10^5n≤109,m≤105【解题思路】第一眼,nnn怎么这么大,神题吧。第二眼,还要动态...原创 2019-04-12 22:00:56 · 282 阅读 · 0 评论 -
【TOP-TREE】BZOJ3153 Sone1
【前言】被拉过来做这个题,但是我根本不会。最后强行写了写不过啊,半抄半改过了。有一些不错的收获,比如重载运算符的各种细节吧,还有一些实现上的细节,标记细节。浪费了一些时间。【题目】lydsy给定一棵nnn个点的带点权树,QQQ次操作,支持:换根,链/子树权值修改,链/子树权值加,链/子树查询min,max,sum\text{min,max,sum}min,max,sum,换父亲。n...原创 2019-04-08 20:36:21 · 817 阅读 · 0 评论 -
【set+线段树】CF833E Caramel Clouds
【题目】Codeforces有nnn个线段覆盖区间[li,ri][l_i,r_i][li,ri],移除它花费cic_ici,你有CCC的花费上限。QQQ次询问一个值xxx,在至多移除两条线段且花费不超过上限的情况下,求一个最小的yyy满足[0,y][0,y][0,y]没有被覆盖的区间长度大于等于xxx。n,Q≤3×105,li,ri,ci≤109n,Q\leq 3\times 10^5...原创 2019-03-12 22:06:07 · 369 阅读 · 0 评论 -
【平衡树维护括号序列】CC_ANUDTQ Dynamic Trees and Queries
【题目】Codechef给定一棵nnn个点的有根树,每个节点都有一个权值,支持以下操作:插入一个节点(作为树上一个节点的儿子)删除一个子树子树加子树求和n,Q≤105n,Q\leq 10^5n,Q≤105,强制在线。【解题思路】这个动态加入叶子还要提出子树就很自闭。不过稍加分析,我们在平时处理问题的时候,都是将子树信息通过DFS\text{DFS}DFS序转到序列上的。当然...原创 2019-03-06 19:57:39 · 450 阅读 · 0 评论 -
【set启发式合并/DSU+二分图匹配】LOJ2712 [BalkanOI 2018 Day1] Minmaxtree
【题目】LOJ给定一棵nnn个节点的树,要求给每条边分配一个边权,可以重复。有KKK个限制一条路径上最大的边权或最小的边权为某个值,每个限制给出的值均不同。求一种构造方案。n,K≤7×104n,K\leq 7\times 10^4n,K≤7×104,限制边权≤109\leq 10^9≤109【解题思路】每个限制给出的值均不同。。。一开始看成了分配边权不同。首先一个简单的想法是将路径限制变...原创 2019-02-17 11:02:02 · 949 阅读 · 0 评论 -
【可持久化Treap+倍增】HDU6087 Rikka with Sequence
【题目】 原题地址 题意:维护一个序列a,要求支持: 操作1:区间求和 操作2:for(int&amp;nbsp;&amp;nbsp;i=l;i&amp;lt;=r;++i)a[i]=a[i−k]for(int&amp;nbsp;&amp;nbsp;i=l;i&amp;lt;=r;++i)a[i]=a[i−k]for(int\ \ i=l;ia[i]=b[i]a[i]=b[i]a[i]=b[i],其中b[原创 2018-08-06 20:35:58 · 605 阅读 · 0 评论 -
【二分答案+平衡树维护线段】CF1034D Intervals of Intervals
【题目】原题地址有nnn个区间[ai,bi][a_i,b_i][ai,bi],定义区间的区间[l,r][l,r][l,r]的价值是第lll个区间到第rrr个区间的并的长度,找出kkk个不同的区间的区间,使得总价值最大。n≤3×105,k≤min{n(n+1)2,109}n\leq 3\times 10^5,k\leq \min\{\frac {n(n+1)} 2,10^9\}n≤3×10...原创 2019-01-06 21:53:01 · 738 阅读 · 1 评论 -
【动态点分治+Treap+替罪羊式重构】UOJ55 [WC2014] 紫荆花之恋
【题目】原题地址每个节点有一个能力值rir_iri,多次操作每次向树上加入一个节点(和一条带权边),并查询当前树上有多少对节点(i,j)(i,j)(i,j)满足dis(i,j)≤ri+rjdis(i,j)\leq r_i+r_jdis(i,j)≤ri+rj。q≤105q\leq 10^5q≤105【解题思路】考虑树是静态时,我们另dxd_xdx表示xxx到当前分治重心的距离,则限...原创 2018-12-10 11:24:10 · 287 阅读 · 0 评论 -
【平衡树+扫描线优化建图】LGT51927反射
【题目】原题地址题意:一个二维平面,给定一个初始平台和nnn个能量平台,均平行xxx轴。有两种能量发射器:typ1typ1typ1:若安装在平台上方,向右上45度发射,在下方则向右下45度发射typ2typ2typ2:同时向右上和右下45度发射当能量发射器能量碰到一个平台时,会激活这个平台上的能量发射器,发射器在一次行动中不能重复激活。每个能量平台至多有一个能量发射器。初始平台上每...原创 2018-10-31 18:13:05 · 474 阅读 · 0 评论 -
【二分答案+线段树+平衡树/线段树分治】APIO2018新家
【题目】 原题地址 题目大意:太长了去看题面吧。【题目分析】 一道看上去比较奇怪的题目,需要一定转化思想。 不过二分答案这个点还是比较显然的。【解题思路】 对时间扫描的话,每间商店等价于插入操作和删除操作。 问题转化为支持插入/删除,询问以某个位置为重心包含所有不同数字的最小长度。 对于询问,显然我们可以二分答案。但是如何查询一个区间内是否出现所有种类的数? 考虑出现的充要...原创 2018-06-14 21:11:40 · 923 阅读 · 4 评论 -
【Splay】 CF809D Hitchhiking in the Baltic States
【题目】CF有一个长度为nnn的序列,第iii个数的取值范围为[li,ri][l_i,r_i][li,ri]。求所有可能情况中,严格最长上升子序列的长度是多少。n≤3×105,ri≤109n\leq 3\times 10^5,r_i\leq 10^9n≤3×105,ri≤109【解题思路】考虑我们平时怎么做LIS\text{LIS}LIS,即设fif_ifi表示LIS\text{...原创 2019-05-01 15:07:44 · 451 阅读 · 0 评论