
主席树
ylsoi
这个作者很懒,什么都没留下…
展开
-
主席树学习笔记
主席树:主席树是一种支持查询历史版本的线段树,需要动态开点,这里以主席树静态查找区间第K大为例(因为刚学只会这个)。算法:静态查找区间第K大其基本思想是构造不同前缀的权值线段树。想象一下如果我们拥有了每一个前缀的权值线段树,那么我们只要利用区间左端点和右端点权值线段树的信息就可以在权值线段树上实现二分查找。 但是每一个前缀开一个权值线段树显然空间开不下,所以要用到主席树。这里不同...原创 2018-08-13 18:21:10 · 145 阅读 · 0 评论 -
[bzoj2588]Count on a tree——树上主席树
题目大意:给定一棵树,然后询问对于(x,y)(x,y)(x,y)上的路径中的点的权值第k小的值。思路:可以用主席树来维护,其实就类似一个树上差分。想一下主席树静态查询区间第k小时是用r的权值线段树减去l-1的权值线段树。这里也类似,我们把每一个结点从它到根的所有的点都放到一个权值线段树中,那么就可以用u+v-lca-fa[lca]的权值线段树来代替。#include<bi...原创 2018-08-13 19:24:08 · 236 阅读 · 0 评论 -
主席树区间动态第K大学习笔记
模板题:bzoj1901学习笔记:静态的区间第K大主席树用到了这么一个思想,就是维护不同的前缀权值线段树,利用不同区间的权值线段树可减的思想来达到查询某一区间的权值线段树的目的。 但是一旦要求修改的话,利用上面那种维护前缀权值线段树就有点麻烦了,因为修改一个值之后所有包括了这个值的前缀权值线段树都要修改,复杂度显然是有问题的。 然后动态的主席树便换了一种思路,想一想如果只是动态的前...原创 2018-08-17 09:02:26 · 442 阅读 · 0 评论 -
[bzoj5343][Ctsc2018]混合果汁——二分答案+主席树
题目描述:小 R 热衷于做黑暗料理,尤其是混合果汁。商店里有 nnn 种果汁,编号为 0,1,⋯,n−10,1,\cdots,n-10,1,⋯,n−1 。iii 号果汁的美味度是 did_idi,每升价格为 pip_ipi。小 R 在制作混合果汁时,还有一些特殊的规定,即在一瓶混合果汁中,iii 号果汁最多只能添加 lil_ili 升。现在有 mmm 个小朋友过来找小 R 要混合果汁...原创 2018-12-09 14:45:16 · 324 阅读 · 0 评论 -
[bzoj4556][Tjoi2016&Heoi2016]字符串——后缀数组+主席数+二分答案
题目大意:佳媛姐姐过生日的时候,她的小伙伴从某东上买了一个生日礼物。生日礼物放在一个神奇的箱子中。箱子外边写了一个长为n的字符串s,和m个问题。佳媛姐姐必须正确回答这m个问题,才能打开箱子拿到礼物,升职加薪,出任CEO,嫁给高富帅,走上人生巅峰。每个问题均有a,b,c,d四个参数,问你子串s[a…b]的所有子串和s[c…d]的最长公共前缀的长度的最大值是多少?佳媛姐姐并不擅长做这样的问题,所以她...原创 2019-02-09 20:50:07 · 321 阅读 · 0 评论 -
[uoj218]火车管理——主席树
题目大意维护一个栈,每次区间压栈,单点弹栈,区间询问栈顶的元素和。思路如果没有弹栈的操作的话,我们每一次只需要在一颗线段树上面区间赋值即可。加上弹栈操作,我们每次就需要知道当前栈顶元素的上一个元素是什么,考虑用主席树来维护每一个时刻每一个位置的最近一次的修改位置。假设当前的时间为x且我们需要弹栈,那么我们需要先查询得到最近的一次时间y,然后查询y-1的修改时间z,那么我们就得到了栈顶下面...原创 2019-03-11 21:45:57 · 196 阅读 · 0 评论 -
[bzoj3514]Codechef MARCH14 GERALD07加强版——lct+主席树
题目大意给定一个图,求编号在[l,r]之间的边形成的图的连通块个数。思路考虑一条边什么时候会造成贡献,即这条边相连的两个部分在之前从未连通过,或者是把所有编号小于l的边去掉之后这两个部分未连通。对于第一种情况可以轻松地用并查集来实现。对于第二种情况,对于每一个l,我们需要判断出u,v这两个点的所有路径中是否存在一条路径使得min(id)>=l,如果不存在则(u,v)这条边可以造成一...原创 2019-03-31 17:02:15 · 430 阅读 · 0 评论