主席树
文章平均质量分 52
SC.ldxcaicai
我很菜=_=
展开
-
BZOJ 3932: [CQOI2015]任务查询系统(主席树)
3932: [CQOI2015]任务查询系统 Time Limit: 20 Sec Memory Limit: 512 MBDescription 最近实验室正在为其管理的超级计算机编制一套任务管理系统,而你被安排完成其中的查询部分。超级计算机中的 任务用三元组(Si,Ei,Pi)描述,(Si,Ei,Pi)表示任务从第Si秒开始,在第Ei秒后结束(第Si秒和Ei秒任务也在运行 ),其...原创 2018-06-30 12:40:05 · 277 阅读 · 0 评论 -
codeforces 961E. Tufurama(主席树)
传送门一眼主席树sbsbsb题(%%%树状数组大佬们)。简化题意:求满足x<y,y≤ax,x≤ayx<y,y\le a_x,x\le a_yx<y,y≤ax,x≤ay的(x,y)(x,y)(x,y)数量。那么直接用主席树模拟题意就行了。代码:#include<bits/stdc++.h>#define ri register intu...原创 2018-12-05 11:50:27 · 350 阅读 · 0 评论 -
bzoj2989: 数列(二进制分组+主席树)
传送门二进制分组入门题。主席树写错调题2h+2h+2h+体验极差。题意简述:给一堆点,支持加入一个点,询问有多少个点跟(x,y)(x,y)(x,y)曼哈顿距离不超过kkk。思路:题目要求的是对于一个斜着的正方形的查询。我们考虑转切比雪夫距离转成正常的正方形。然后就变成了一个动态的二维数点问题。这个时候已经可以上cdqcdqcdq分治+扫描线或者树套树切题啦。然而还有一种叫做二进制...原创 2019-01-21 18:56:00 · 447 阅读 · 0 评论 -
bzoj3674: 可持久化并查集加强版(主席树+并查集)
传送门题意:维护可持久化并查集,支持在某个版本连边,回到某个版本,在某个版本 询问连通性。思路:我们用主席树维护并查集fafafa数组,由于要查询历史版本,因此不能够用路径压缩。可以考虑另外一种优化方式:按秩合并貌似直接瞎合并也能过于是主席树再额外维护一个该节点的秩即可。代码:#include<bits/stdc++.h>#define ri register int...原创 2019-01-21 21:44:23 · 296 阅读 · 0 评论 -
洛谷P3919 【模板】可持久化数组(主席树)
传送门题意简述:支持在某个历史版本上修改某一个位置上的值,访问某个历史版本上的某一位置的值。思路:用主席树直接维护历史版本即可。代码:#include<bits/stdc++.h>#define ri register intusing namespace std;inline int read(){ int ans=0,w=1; char ch=getchar(...原创 2019-01-21 21:58:30 · 218 阅读 · 0 评论 -
bzoj2874: 训练士兵(主席树)
传送门题意简述:给出一个n∗mn*mn∗m的矩阵n,m≤1e8n,m\le1e8n,m≤1e8,支持矩形加,矩形求和,强制在线。思路:第一眼二维动态开点线段树,上网去搜有没有这种做法发现会被卡时空然后心态爆炸,居然不能直接树套树233.然后想起了一个叫做二维前缀和+差分的东西(二维树状数组的时候用过),貌似维护二维差分数组的前缀和就完了,这东西不是可以离散化+主席数吗?上网一搜发现是正...原创 2019-01-22 11:48:31 · 498 阅读 · 4 评论 -
bzoj5371: [Pkusc2018]星际穿越(主席树)
传送门题意简述:给一个序列,对于第iii个位置,它跟[limi,i−1][lim_i,i-1][limi,i−1]这些位置都存在一条长度为111的无向边。称dist(u,v)dist(u,v)dist(u,v)表示(u,v)(u,v)(u,v)间最短路长度。qqq次询问,每次给出l,r,xl,r,xl,r,x,求∑i=lrdist(i,x)\sum_{i=l}^rdist(i,x)∑i=...原创 2019-03-09 15:37:14 · 182 阅读 · 0 评论 -
bzoj4539: [Hnoi2016]树(主席树+倍增)
传送门题意:给一棵大树,令一棵模板树与这棵树相同,然后进行mmm次操作,每次选择模板树中的一个节点aaa和大树中一个节点bbb,把aaa这棵子树接在bbb上面,节点编号顺序跟aaa中的编号顺序相同。最后有qqq次询问问大树上两点距离。思路:真·树套树把每棵树所成一个点,然后相当于先把两个点跳到一个块中再求它们的lcalcalca,可以用主席树维护块中编号第kkk大来维护块中对应点,实现...原创 2019-03-25 18:27:44 · 182 阅读 · 0 评论 -
NOIp训练 红绿色盲ldxcaicai(bit套主席树)
传送门然而就是我把数颜色的数据加强了一下。。。数据范围:n,m≤200000,ai≤1000000n,m\le200000,a_i\le1000000n,m≤200000,ai≤1000000而且还可以强制在线。。。反正带修莫队是凉掉了。正解是bitbitbit套主席树。考虑用把每个位置上颜色出现的上一个位置作为下标插入到主席树中,然后答案就可以差分出来。再套上bitbitbit就...原创 2019-07-18 21:24:31 · 486 阅读 · 1 评论 -
2018.10.31 bzoj3339&&3585mex(主席树)
传送门双倍经验直接上主席树,每个叶节点维护这个值出现的最右区间,非叶子节点维护当前值域内所有最右区间的最小值。查询的时候只用在以root[qr]root[qr]root[qr]为根的树上面二分。看左儿子满没有就只用看左边的最小值是不是大于qlqlql就行了。代码:#include<bits/stdc++.h>using namespace std;inline int ...原创 2018-10-31 20:17:14 · 246 阅读 · 0 评论 -
2018.10.16 NOIP模拟 长者(主席树+hash)
传送门考试的时候开始sb的以为需要可持久化trietrietrie树,发现建树时空都是O(n2)O(n^2)O(n2)的。然后发现由于每次只从原来的字符串改一个字符。因此直接主席树维护区间hashhashhash值。sortsortsort的时候在主席树上二分比大小。如果左子树hashhashhash值相同递归比右子树,否则走左子树,因为左子树的字典序的贡献更大。代码...原创 2018-10-16 14:25:33 · 305 阅读 · 0 评论 -
2018.09.30 bzoj3551:Peaks加强版(dfs序+主席树+倍增+kruskal重构树)
传送门一道考察比较全面的题。这道题又用到了熟悉的kruskal+倍增来查找询问区间的方法。查到询问的子树之后就可以用dfs序+主席树统计答案了。代码:#include&amp;lt;bits/stdc++.h&amp;gt;#define N 200005#define M 500005using namespace std;inline int read(){ int ans=0; ch...原创 2018-09-30 14:40:04 · 199 阅读 · 0 评论 -
洛谷P2617 Dynamic Rankings(带修主席树)
P2617 Dynamic Rankings 题目描述 给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后...原创 2018-07-01 11:05:44 · 469 阅读 · 0 评论 -
BZOJ3295: [Cqoi2011]动态逆序对(带修主席树)
3295: [Cqoi2011]动态逆序对 **Time Limit: 10 Sec Memory Limit: 128 MB Description 对于序列A,它的逆序对数定义为满足i&amp;amp;lt;ji&amp;amp;lt;ji(1,5,3,4,2)(1,3,4,2)(3,4,2)(3,2)(3)(1,5,3,4,2)(1,3,4,2)(3,4,2)(3,2)(3)(1,5,3,4,2)...原创 2018-07-01 13:44:30 · 393 阅读 · 0 评论 -
2018.07.07 洛谷 P3939 数颜色(主席树)
P3939 数颜色 题目背景 大样例下发链接:http://pan.baidu.com/s/1c0LbQ2 密码:jigg题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的。每只兔子都有一种颜色,不同的兔子可能有 相同的颜色。小 C 把她标号从 1 到 nnn 的nn n 只兔子排成长长的一排,来给他们喂胡萝卜吃。 排列完成后,第 ii 只兔子的颜色是4ai4ai4 a_i 。俗话说得好...原创 2018-07-07 16:15:15 · 270 阅读 · 0 评论 -
2018.08.04 spoj TTM to the moon(主席树)
spoj传送门 vjudge传送门 主席树板子题。 支持历史版本的区间和,区间和,区间修改和时光倒流。 其中新奇一点的也只有区间修改了,这个东西直接标记永久化就行了。 如果想下传标记的话也行,需要在pushdown的时候新建一波节点。 代码:#include&lt;cstdio&gt;#include&lt;cctype&gt;#define ll long long#d...原创 2018-08-03 16:37:33 · 273 阅读 · 0 评论 -
2018.09.14 洛谷P3567 [POI2014]KUR-Couriers(主席树)
传送门 简单主席树啊。 但听说有随机算法可以秒掉%%%(本蒟蒻并不会) 直接维护值域内所有数的出现次数之和。 当这个值不大于区间总长度的一半时显然不存在合法的数。 这样在主席树上二分查值就行了。 代码:#include<bits/stdc++.h>#define N 500005using namespace std;inline int read(){ ...原创 2018-09-14 23:03:08 · 223 阅读 · 0 评论 -
2018.10.08 NOIP模拟 序列(主席树)
2.1 description最近小 X 对序列的研究产生了一定的兴趣。小 X 把一个区间的中位数看成将这个区间内的数排序之后位于中间的数,如果区间的长度为偶数的话则是较小的数。一开始,小 X 想研究一个序列的所有区间中,中位数最大的区间是哪一个。后来他想了想觉得太简单了,于是决定把这个问题加大一点难度:小 X 现在想知道有多少区间的中位数位于他给定的 [l1, r1] 之间。后来他想了...原创 2018-10-11 23:48:07 · 310 阅读 · 0 评论 -
2018.10.14 bzoj4571: [Scoi2016]美味(主席树)
传送门自认为是一道思想很妙的题。直接分析问题。如果没有xxx的干扰直接上可持久化01trie01trie01trie走人。但现在有了xxx这个偏移量。相当于把整个01trie01trie01trie向左平移了xxx。这个感觉01trie01trie01trie维护不是很可做。于是我们把可持久化01trie01trie01trie转成主席树。发现只是把选择左/右子树变成了选择左/右...原创 2018-10-14 22:30:27 · 111 阅读 · 0 评论 -
2018.09.30 bzoj2223: [Coci 2009]PATULJCI(主席树)
传送门主席树经典题目。直接利用主席树差分的思想判断区间中数的个数是否合法然后决定左走右走就行了。实际上跟bzoj3524是同一道题。代码:#include<bits/stdc++.h>#define N 300005using namespace std;int n,m,sig,rt[N],ql,qr;struct Tree{ int son[N*30][2],si...原创 2018-09-30 08:12:43 · 151 阅读 · 0 评论 -
NOIp训练 子串查找VII(树剖+ac自动机+dfs序+bit套主席树)
传送门题意:有一棵nnn个点的无根树,第iii个点上有一个字符串sis_isi作为编号和一个权值viv_ivi,现在有mmm次强制在线的询问/修改。询问:给出一个字符串SSS和一条路径(u,v)(u,v)(u,v),路径上iii点的贡献是sis_isi在SSS中出现次数*viv_ivi,问总贡献。时间复杂度:O(nlogn3),∑∣si∣,∑∣S∣,n,mO(nlogn^3),\s...原创 2019-07-17 19:36:24 · 246 阅读 · 0 评论