![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
数据结构-线段树
文章平均质量分 71
数据结构-线段树
ZSJZ_liuzian
这个作者很懒,什么都没留下…
展开
-
NOI2021 统一省选(A卷) Day2 T1 宝石(树上主席树+二分+倍增)
NOI2021 统一省选 Day2 T1 宝石题目大意大小为nnn的树上,每个点有一个权值wi≤[1,m]w_i\le[1,m]wi≤[1,m],给出一个无重序列PPP,qqq组询问,每次求从xxx到yyy的最短路径的点权能从111开始对应序列PPP的多少位。n,q≤2∗105,m,∣P∣≤5∗104n,q\le2*10^5,m,|P|\le5*10^4n,q≤2∗105,m,∣P∣≤5∗104题解有一档m≤300m\le300m≤300的部分分,可以直接记录每个点向上权值为iii的点是哪原创 2021-04-20 21:55:34 · 544 阅读 · 0 评论 -
JZOJ 7049. 2021.04.07【2021省赛模拟】生命游戏(拉格朗日插值+矩形面积并)
JZOJ 7049. 2021.04.07【2021省赛模拟】生命游戏题目大意二维平面网格中初始有nnn个点,每一时刻某一位置存在点当且仅当上一时刻相邻四格中存在点,QQQ次询问,求时刻000到时刻ttt平面上存在的点的总和。n≤100,Q≤106n\le100, Q\le10^6n≤100,Q≤106题解当只有一个点时,手玩一下可以发现,每一时刻ttt存在的点数为(t+1)2(t+1)^2(t+1)2。当有多个点时,坐标(xi+yi)(x_i+y_i)(xi+yi)奇偶性不同的点之原创 2021-04-08 14:59:07 · 225 阅读 · 1 评论 -
JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树(平衡树单旋+权值线段树)
JZOJ 7036. 2021.03.30【2021省赛模拟】凌乱平衡树题目大意给出两棵Treap,大小分别为n,mn,mn,m,每个点的priorityprioritypriority值为子树大小(因此满足大根堆性质),QQQ次修改(修改是永久的),每次单旋一个节点,求修改前和每次修改后后两树合并之后的所有节点深度之和。合并按照Treap的合并方式,左树根为xxx,右树根为yyy时,当sizex≥sizeysize_x\ge size_ysizex≥sizey时以xxx为根,否则反之。1≤n,原创 2021-03-31 16:51:02 · 176 阅读 · 0 评论 -
JZOJ 6653. 【2020.05.27省选模拟】树(权值线段树)
JZOJ 6653. 【2020.05.27省选模拟】树题目大意一棵以111为根大小为nnn的树,要求父亲编号小于儿子,2n−22n-22n−2个数,可任意分配使它们作为树的边权和每个点的父亲编号,求各种分配下111到nnn路径长度分别为[1,n)[1,n)[1,n)时路径的最大边权和。n≤105n\le10^5n≤105题解树的形态确定后,最大边权和自然为剩余未选的若干个数之和。统计每个数出现的个数cic_ici,求出前缀和,若存在sumi−1<i−1sum_{i-1}<i原创 2021-03-02 21:46:23 · 221 阅读 · 0 评论 -
GDKOI 2021 提高组 Day2 第二题 群岛(线段树)
GDKOI 2021 提高组 Day2 第二题 群岛题目大意nnn个点,每个点iii只有连向i+1i+1i+1和aia_iai两条出边,mmm次操作,支持修改aia_iai,询问点xxx能到达的编号最小的点。n,m≤105n,m\le10^5n,m≤105题解显然ai≥ia_i\ge iai≥i是没有用的。考虑某个点xxx会以何种方式走向最优的点,不失一般性地,一定是先往右走若干格,再通过axa_xax走向较小的点,然后如此循环重复。这个过程中会使用多若干组(i,ai)(i,a_原创 2021-01-31 21:48:38 · 160 阅读 · 0 评论 -
JZOJ 6943. 【2020.01.05冬令营模拟】社会实践(线段树)
JZOJ 6943. 【2020.01.05冬令营模拟】社会实践题解题目的原型还是汉诺塔问题,操作规则和普通汉诺塔问题是一样的,先考虑对于某个单独询问如何计算最优答案。按普通汉诺塔,考虑还原的过程,发现根本不知道下一步该如何移动,无法解决,但如果从还原好的状态倒推,每一步移动都是自然的,初始所有圆盘都在最大圆盘应回到的柱子,然后从大到小,如果第iii个已复位则忽略, 否则将剩下i−1i-1i−1个移到第三根柱,再移动第iii个,步数为2i−12^{i-1}2i−1。这样移动可以保证时刻都是合法的。原创 2021-01-07 21:35:33 · 152 阅读 · 0 评论 -
JZOJ 6898. 【2020.11.27提高组模拟】第二题(DFS序+线段树)
JZOJ 6898. 【2020.11.27提高组模拟】第二题题解首先分析操作的实质,其实它相当于把某个点连同子树插入到父亲的位置,并将父亲删除,且其余不变。那么fff值的暴力求法则可以不断往父亲上跳,当父亲的子树除去自己的子树外还有黑点时f+1f+1f+1。如果暴力维护这个过程,复杂度是O(n3)O(n^3)O(n3),稍微优化一下可以到O(n2)O(n^2)O(n2),这都不难想到,但是仍旧无法通过。依次考虑每个点iii新加入后的贡献,贡献分两种:1、iii到根节点路径上的点对fif_ifi原创 2021-01-07 20:11:58 · 102 阅读 · 0 评论 -
JZOJ 6840. 【2020.11.5提高组模拟】铲雪(线段树)
JZOJ 6840. 【2020.11.5提高组模拟】铲雪题目大意n∗mn*mn∗m的土地上,每次操作前积雪深度+1+1+1,qqq次操作,把某行或某列积雪清零,或询问两点间积雪深度不超过某个值的最短路。n,m≤106n,m\leq10^6n,m≤106,q≤3∗105q\leq 3*10^5q≤3∗105题解这题整张图n∗mn*mn∗m特别大,直接跑最短路显然不可行,但稍微推一推,发现这题和最短路完全没关系,由于这题操作的特殊性,所以时刻iii时两点(s,t)(s,t)(s,t)和(x,y原创 2020-11-05 21:14:09 · 243 阅读 · 0 评论 -
JZOJ 6808. 【2020.10.29提高组模拟】easy(单调栈+线段树)
JZOJ 6808. 【2020.10.29提高组模拟】easy题目大意给一个长度为nnn的序列,求有多少个区间[l,r][l,r][l,r],使得区间排序后相邻两数之差小于111.n≤105n\leq10^5n≤105题解这种题似乎很套路,类似的题不少。先假如没有重复的数,则所有区间满足max−min≥r−lmax-min\geq r-lmax−min≥r−l,当且仅当区间符合上述条件时等号成立,即当max−min+lmax-min+lmax−min+l的最小值为rrr时等号成立,符合原创 2020-11-01 10:51:11 · 307 阅读 · 0 评论 -
JZOJ 6829. 【2020.10.25提高组模拟】异或(DP+线段树)
JZOJ 6829. 【2020.10.25提高组模拟】异或题目大意给出一个长度为NNN的序列AAA,求元素两两异或值不小于XXX的非空子序列个数。N≤300000,0≤Ai,X<260N\leq300000,0\leq A_i,X< 2^{60}N≤300000,0≤Ai,X<260.题解一开始看到“子序列”困扰了很久,但会发现,题目又要求子序列两两满足某种要求,所以就和序列顺序无关了,那么可以把“子序列”看做是“子集”,什么样的子集满足条件呢?能否简化题目限制?结原创 2020-10-28 22:01:35 · 384 阅读 · 0 评论 -
JZOJ 4418. 【HNOI2016模拟4.1】Prime的把妹计划(单调栈+线段树)
JZOJ 4418. 【HNOI2016模拟4.1】Prime的把妹计划题目大意给定序列A1..NA_{1..N}A1..N,分别求出QQQ组询问区间[L,R][L,R][L,R]中最长的连续子序列Al..rA_{l..r}Al..r的长度,须满足该子序列中任意元素都在[Al,Ar](Al≤Ar)[A_l,A_r](A_l≤A_r)[Al,Ar](Al≤Ar)或[Ar,Al](Ar≤Al)[A_r,A_l](A_r≤A_l)[Ar,Al](Ar≤Al)中,也就是区间最大/最小值分别原创 2020-09-08 22:10:33 · 191 阅读 · 0 评论 -
COCI 2015/2016 PROKLETNIK(单调栈+线段树)
COCI 2015/2016 PROKLETNIK题目大意给定序列A1..NA_{1..N}A1..N,分别求出QQQ组询问区间[L,R][L,R][L,R]中最长的连续子序列Al..rA_{l..r}Al..r的长度,须满足该子序列中任意元素都在[Al,Ar](Al≤Ar)[A_l,A_r](A_l≤A_r)[Al,Ar](Al≤Ar)或[Ar,Al](Ar≤Al)[A_r,A_l](A_r≤A_l)[Ar,Al](Ar≤Al)中,也就是区间最大/最小值分别在左右端点。N,Q≤原创 2020-09-08 22:09:02 · 376 阅读 · 2 评论 -
JZOJ 4017. 【雅礼联考DAY01】逃跑(0/1分数规划+单调队列+线段树优化DP)
JZOJ 4017. 【雅礼联考DAY01】逃跑题目DescriptionKonrad, Delfador 和 Kalenz 一行人又喜闻乐见地被追杀了。他们面临的是一条有 N 个地点的路, 他们从 0 号地点出发, 要逃到 N 号地点去。每个地点的战斗都有一定的金币收入 Ai,也有一定的部队损失 Bi。为了更好地逃生, Delfador 还弄到了一块传送宝石,这样一行人就能向后传送不超...原创 2020-02-10 21:47:44 · 245 阅读 · 0 评论 -
JZOJ 3945. 【湖南省队集训2014】Jabberwocky(线段树+双向链表)
JZOJ 3945. 【湖南省队集训2014】Jabberwocky题目DescriptionInputOutputSample Input110 31 2 32 1 12 4 23 5 34 4 25 1 26 3 16 7 17 2 39 4 2Sample Output5Data Constraint题解因为要考虑线段以上和线段一下的,同...原创 2020-01-10 20:18:07 · 221 阅读 · 0 评论 -
主席树 可持久化线段树基础知识入门详解
主席树可持久化权值线段树,又称为主席树。是权值线段树的进阶版,如果不会权值线段树可以先学习一下。 【权值线段树】基础入门知识详解是什么它可以看作是多棵权值线段树,但它所占的空间很小!!! 具体不容易解释,可以先往后面的内容浏览。为什么要用它对于一棵权值线段树,我们要往里面加入nnn个数。容易知道,每加入一个数就会更新一遍线段树。 当我们想要知道每次更新后的权值线段树的状态...原创 2018-08-17 21:20:44 · 1677 阅读 · 2 评论 -
权值线段树 基础入门知识详解
权值线段树学习权值线段树,首先要了解线段树是什么。如果不会的可以先学习一下。是什么权值线段树,顾名思义是一棵线段树。 但它和普通线段树不同: 线段树,每个节点用来维护一段区间的最大值或总和等。 权值线段树,相当于一个桶,每个节点用来表示一个区间的数出现的次数。为什么要用它我们可以用它来维护一段区间的数出现的次数,从它的定义上来看,它可以快速计算一段区间的数的出现次数。 ...原创 2018-08-17 19:50:17 · 8916 阅读 · 20 评论 -
JZOJ 5222. 【GDOI2018模拟7.12】A(权值线段树)
JZOJ 5222. 【GDOI2018模拟7.12】A原创 2018-12-03 21:55:53 · 270 阅读 · 0 评论 -
JZOJ 4769. 【GDOI2017模拟9.9】graph(线段树+并查集按秩合并)
JZOJ 4769. 【GDOI2017模拟9.9】graph题目Description对于一个图, 如果它的点集能被分成两个部分, 使得在原图中每一部分之间的点没有任何边相连,则该图被称为二分图。现在给定一个无向图,每次增加一条边,或者删除一条边。要求您每次判断它是不是二分图。Input第一行两个数nnn,mmm,表示该图的点数和操作数。接下来mmm行,以一个数typetypety...原创 2019-03-20 21:25:51 · 228 阅读 · 0 评论 -
JZOJ 6276. 【noip提高组模拟1】树(DFS序+扫描线)
JZOJ 6276. 【noip提高组模拟1】树题目Description有一棵n个节点的无根树,给出其中的m对点对<x,y>。问有多少条树上的简单路径<u,v>满足该路径上不存在任何一对给出的点对<x,y>。这里我们认为路径<u,v>和<v,u>是相同的。并且对于题目中给出的点对<x,y>满足x!=y,对于你要计数的...原创 2019-08-11 19:43:29 · 248 阅读 · 0 评论 -
JZOJ 1011. 【GDKOI2009模拟3】Zoo(主席树)
JZOJ 1011. 【GDKOI2009模拟3】Zoo题目DescriptionJZ拥有一个很大的野生动物园。这个动物园坐落在一个狭长的山谷内,这个区域从南到北被划分成N个区域,每个区域都饲养着一头狮子。这些狮子从北到南编号为1,2,3,…,N。每头狮子都有一个觅食能力值Ai,Ai越小觅食能力越强。饲养员西西决定对狮子进行M次投喂,每次投喂都选择一个区间[I,J],从中选取觅食能...原创 2018-08-17 21:08:22 · 375 阅读 · 0 评论