![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
主席树
_xgcxgc
一名热爱看番的OIer,
热爱OI,
热爱二次元,
热爱这个世界。
展开
-
谈谈主席树的那些事儿
1 [视频] 【主席树】第K小的数Ⅰ(caioj1441)主席树为什么叫主席树呢? 因为发明它的fotile被我们叫做fotile主席,所以就叫主席树。 首先就先来讲一下它的两个主要函数插入和合并。 这里的插入使用的是动态开点。 因为很多时候线段树维护的区间很大,而能定义的空间是有限的。 所以我们就只给那些有用的点一个编号就可以了(只有在修改时被访问过的点才是有用的)。虽然这样的线段树是残原创 2017-09-18 13:50:49 · 3934 阅读 · 4 评论 -
[Jsoi2018]军训列队 主席树
Description一共有nnn个学生,第iii个学生的休息位置是a[i]a[i]a[i]。每一次命令,教官会指定一个区间[l,r][l, r][l,r]和集合点kkk,所有编号在[l,r][l, r][l,r]内的学生都必须赶到集合点列队。在列队时,每一个学生需要选择[k,k+r−l][k, k+r-l][k,k+r−l]中的一个整数坐标站定且不能有任何两个学生选择的坐标相同。学生从坐标xx...原创 2019-02-28 07:13:12 · 212 阅读 · 0 评论 -
Bubble Cup 11 - Finals [Online Mirror, Div. 1] G.AI robots 主席树
Description有n个机器人,每个机器人有三个参数:xi,ri,qi定义一个机器人i可以看见另一个机器人j为:xi - ri <= xj <= xi + ri。现在可以互相看见,且qi差值不超过k的可以谈话,求有多少对可以谈话。Sample Input3 23 6 17 3 1010 5 8Sample Output1我们先考虑有序数对(i,j)满...原创 2018-09-23 10:07:43 · 353 阅读 · 0 评论 -
[SCOI2016]美味 主席树+贪心
Decripition 给一个长度为n的序列, 再给m个询问,每次给四个数:b,x,l,r。 要求j在l~r的范围内 b xor (a[j]+xi)的最大值。Sample Input 4 4 1 2 3 4 1 4 1 4 2 3 2 3 3 2 3 3 4 1 2 4Sample Ouput 9 7 6 7这道题涨姿势了,以前一直以为有异或就找0...原创 2018-09-12 13:53:06 · 140 阅读 · 0 评论 -
BZOJ3218:a + b problem 主席树维护网络流建图
Description 有n个方格,每个方格有6个属性:ai,bi,wi,li,ri,pi。 当方格涂白色时获得wi的值,方格涂黑色获得bi的值。 当方格涂黑色是若有方格满足: 1 < j < i,li<=a[j]<=ri,且方格j为白色时。 则方格i的权值需减去pi。 求一种染色方案使结果最大。Sample Input 10 0 1 7 3 9 2...原创 2018-08-31 13:24:03 · 154 阅读 · 0 评论 -
[Sdoi2013]森林 主席树+启发式合并
Description 有一片森林,含有N个节点,每个节点上都有一个非负整数作为权值。初始的时候,森林中有M条边。 执行T个操作,操作有两类: Q x y k查询点x到点y路径上所有的权值中,第k小的权值是多少。此操作保证点x和点y连通,同时这两个节点的路径上至少有k个点。 L x y在点x和点y之间连接一条边。保证完成此操作后,仍然是一片森林。 为了体现程序的在线性,我们把输入数据进行了原创 2018-04-20 10:46:41 · 177 阅读 · 0 评论 -
BZOJ3261: 最大异或和 可持久化01字典树
Description 给定一个非负整数序列{a},初始长度为N。 有M个操作,有以下两种操作类型: 1、Ax:添加操作,表示在序列末尾添加一个数x,序列的长度N+1。 2、Qlrx:询问操作,你需要找到一个位置p,满足l<=p<=r,使得: a[p] xor a[p+1] xor … xor a[N] xor x 最大,输出最大是多少。Sample Input 5 5 2 6 4 3原创 2018-04-22 22:32:14 · 248 阅读 · 0 评论 -
[Scoi2015]情报传递 主席树
Description 给定一个n个节点的树,有两种操作: 1、求x~y这条链上的节点数和大于c的节点数。 2、i这个节点从下一时刻开始每次操作++。Sample Input 7 0 1 1 2 2 3 3 6 1 4 7 0 2 1 2 4 2 7 1 4 7 1 1 4 7 3Sample Output 5 0 5 2 5 1这道题挺裸的...原创 2018-04-17 22:52:20 · 188 阅读 · 0 评论 -
BZOJ3439:Kpm的MC密码 字典树+dfs序+主席树
Description 系统将随机生成n个由a…z组成的字符串,由1…n编号(s1,s2…,sn),然后将它们按序告诉你,接下来会给你n个数字,分别为k1…kn,对于每一个ki,要求你求出列出的n个字符串中所有是si的kpm串的字符串的编号中第ki小的数,如果不存在第ki小的数,则用-1代替。(比如说给出的字符串是cd,abcd,bcd,此时k1=2,那么”cd”的kpm串有”cd”,”abcd...原创 2018-04-17 21:04:14 · 193 阅读 · 0 评论 -
[HNOI2015]开店 主席树+树链剖分
Description 给你一棵带边权、带点权的树。 每次询问所有点权为l~r的节点到节点u的距离之和Sample Input 10 10 10 0 0 7 2 1 4 7 7 7 9 1 2 270 2 3 217 1 4 326 2 5 361 4 6 116 3 7 38 1 8 800 6 9 210 7 10 278 8 9 8 2 8 0 9 3 1 8原创 2018-04-12 10:39:12 · 264 阅读 · 0 评论 -
[Apio2012]dispatching 主席树+dfs序 或 左偏树
Description 给你一棵树,你可以选择一个节点,一个节点有两个值ai、bi,你可以选择它子树里ai总和不超过M的k个点,那么这个节点的价值bi*k,求整棵树的最大价值。Sample Input 5 4 0 3 3 1 3 5 2 2 2 1 2 4 2 3 1Sample Output 6好像不难吧。。。 这道题考虑用主席树做,我们首先有一个贪心的...原创 2018-04-17 20:25:04 · 145 阅读 · 0 评论 -
[Jsoi2013]贪心的导游 主席树+暴力
Description 给n个数,m个询问,每次询问l~r区间内的数mod p的最大值。Sample Input 5 5 2 4 6 8 10 0 1 2 1 4 3 2 4 2 1 1 9 0 4 7Sample Output 0 2 0 4 6这道题考虑主席树。 我先看了p的范围和ai范围,于是只能想到一个大暴力。。。 就是枚举p的倍数,在...原创 2018-04-11 14:39:37 · 260 阅读 · 0 评论 -
[Jsoi2015]字符串树 hash+主席树+LCA
Description 字符串树本质上还是一棵树,即N个节点N-1条边的连通无向无环图,节点从1到N编号。与普通的树不同的是,树上的每条边都对应了一个字符串。每次给出一个字符串S和两个节点U,V,需要回答U和V之间上有多少个字符串以S为前缀。Sample Input 4 1 2 ab 2 4 ac 1 3 bc 3 1 4 a 3 4 b 3 2 abSample Output原创 2018-04-15 21:10:00 · 163 阅读 · 0 评论 -
BZOJ3207:花神的嘲讽计划Ⅰ hash+主席树
Description 给出一个长度为n的序列,有m个询问,每次询问l~r是否存在长度为k的一个字串。Sample Input 8 5 3 1 2 3 4 5 6 7 8 2 5 2 3 4 1 8 3 2 1 5 7 4 5 6 2 5 1 2 3 1 7 3 4 5Sample Output No Yes Yes Yes No这一题用hash来...原创 2018-04-15 20:25:23 · 188 阅读 · 0 评论 -
[Zjoi2013]K大数查询 主席树+树状数组
Description有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c 如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。Sample Input2 5 1 1 2 1 1 1 2 2 2 1 1 2 2 1 1 1 2 1 2 3Sample Output1 ...原创 2018-04-09 20:25:33 · 324 阅读 · 2 评论 -
HAOI2018题解
这一年搞了我好久。。。但还都是比较可做的。奇怪的背包对于每一个物品iii,他能拼出的物品ddd满足d∣gcd(P,V[i])d|gcd(P,V[i])d∣gcd(P,V[i]),所以一个物品只需要对PPP去gcdgcdgcd即可。根据蜚蜀定理你一堆物品能拼出的物品为这堆物品的gcdgcdgcd的倍数。然后你做一个dpdpdp表示,f[i][j]f[i][j]f[i][j]表示前iii个...原创 2019-03-05 17:02:30 · 276 阅读 · 0 评论