![](https://img-blog.csdnimg.cn/73ef762c0d4d4268ba87d987a6a88682.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线段树
文章平均质量分 60
线段树
EschatonAyane
风会带走我曾经存在过的证明
展开
-
【洛谷P4392】Sound 静音问题【线段树】
linklinklink分析:线段树枚举[i,i+m][i,i+m][i,i+m]区间中minminmin和maxmaxmax 然后看它们的差是否<=c<=c<=c即可CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>#define reg registerusing namesp.原创 2022-01-12 21:22:35 · 69 阅读 · 0 评论 -
【洛谷P5057】简单题【线段树】
linklinklink分析:区间异或 单点查询CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std;typedef long long ll;const int N=1e5+5;int n,m,a[N<<2];void down(int x,..原创 2021-12-18 09:52:52 · 88 阅读 · 0 评论 -
【洛谷P3870】开关【线段树】
Problem linkProblem~linkProblem link分析:线段树找手感每次下传时懒标记xor 1xor~1xor 1 新开的个数 即总数减掉上次开的个数CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<queue>using namespace std.原创 2021-12-17 20:22:59 · 275 阅读 · 0 评论 -
【洛谷P1253】扶苏的问题【线段树】
Luogu linkLuogu~linkLuogu link分析:线段树 主要在于懒标记下传CODE:#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;typedef long long ll;const int N=1e6+5;ll n,T,a[N];struct SegmentTre.原创 2021-11-06 15:46:10 · 332 阅读 · 0 评论 -
【洛谷P2471】降雨量【线段树,RMQ】
LuoguLuoguLuogu linklinklink分析:很显然的思路 就是每次找出[X,Y][X,Y][X,Y]年份间的最大降水量 然后判真假 线段树即可maybemaybemaybe比较难判 要看X,YX,YX,Y是否知道降水量 有可能都不知道 或知道一个 就要具体处理CODE:#include<cstdio>#include<iostream>#include<algorithm> #include<cstring>using n.原创 2021-09-11 15:55:32 · 119 阅读 · 0 评论 -
#Aug.20th 提高B组模拟赛T2 小喵喵的新家【线段树】
分析:扇形面积=p2m×πr2=\frac{p}{2m}\times \pi r^2=2mp×πr2 ppp为扇形所占的份数 最后答案乘上2mπ\frac{2m}{\pi}π2m 这样就化掉了要找的就是第k大半径 用ara_rar记录半径为rrr的数量 从[−m,m][-m,m][−m,m]扫过去 遇到起始点就将ar+1a_r+1ar+1 终点就ar−1a_r-1ar−1然后线段树维护CODE:#include<iostream>#include<cstdio>.原创 2021-08-23 21:33:55 · 54 阅读 · 0 评论 -
【洛谷P2184】贪婪大陆【线段树】
linklinklink分析:查询区间内有多少不同的区间如果一个区间的头在节点xxx的左边 那这个区间包含在[1,x][1,x][1,x] 尾也同理线段树维护xxx之前有多少区间头的数量ans1ans1ans1 尾的数量ans2ans2ans2 最后答案类似前缀和 即ans2−ans1ans2-ans1ans2−ans1CODE:#include<iostream>#include<cstdio>#include<algorithm>#include&.原创 2021-08-21 15:11:17 · 79 阅读 · 0 评论 -
【洛谷P7416】No Time to Dry P【主席树】
Luogu link\textcolor{pink}{Luogu~link}Luogu link分析:一个显然思路:找出区间内颜色数量ansansans 如果如212212212这样中间会断开的情况 就要继续涂每个位置记录一个lasilas_ilasi表示左边第一个颜色相同的位置对于新的点 找出lasilas_ilasi到i−1i-1i−1的最小值MinMinMin 若Min<aiMin<a_iMin<ai 说明从lasilas_{i}lasi到ii..原创 2021-08-18 15:36:33 · 109 阅读 · 0 评论 -
【洛谷P5522】棠梨煎雪【状压 线段树】
linklinklink分析:nnn只有303030 考虑状压线段树维护两个值kkk和valvalval 分别表示该位是否确定和该位的值有′?′'?'′?′ 也就是不确定的 都将该位的值设为000关于合并:::注意当leftchild.k=1leftchild.k=1leftchild.k=1且rightchild.k=1rightchild.k=1rightchild.k=1 说明这一位确定 此时若leftchild.val!=rightchild.valleftchild.val!=r...原创 2021-07-18 10:21:05 · 135 阅读 · 0 评论 -
【洛谷P2391】白雪皑皑【线段树】
linklinklink分析:有区间修改 就用线段树写 但要考虑优化如果正向填 会有很多之前填区间是重复被覆盖的 这样就会TLETLETLE所以从最后一种颜色填起 之后填的颜色只覆盖未填色部分 填了的就不用做这样就省去了重复填的时间CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>using n.原创 2021-05-05 09:55:04 · 99 阅读 · 1 评论 -
【Ybt OJ】[数据结构 第4章] 线段树 [后半章]
「「「数据结构」」」第444章 线段树(((后222题)))目录:D.维护序列E.字符串排序大家好 我是个菜鸡 我非常喜欢暴力数据结构 于是我用线段树过了这些题(D.D.D. 例题444 维护序列洛谷link1link1link1 洛谷link2link2link2分析:和例题222差不多 就是加了个乘操作但要注意 维护lazylazylazy标记 和下传时 先乘再加因为 如果维护的是aaa lazylazylazy标记有+c+c+c和×b\times b×b但是 a×b+c≠(原创 2021-05-03 19:33:43 · 106 阅读 · 1 评论 -
【洛谷P3919】可持久化线段树1【主席树】
linklinklink分析:如果想看历史版本 那就可以对每个操作复制 将未进行操作的线段树复制 再对原线段树修改但这样肯定不行 O(nm)O(nm)O(nm) 而且每次开一棵线段树空间早爆炸那肯定只要对进行了操作的节点进行复制红色记录修改的节点 对于每个新节点 编号就是此时新增的总结点数+1+1+1并且 每个节点可能不止111个父节点 所以不能像线段树一样×2\times 2×2 和×2+1\times 2+1×2+1 就要分别记录左右儿子CODE:#include<iost..原创 2021-04-22 16:05:21 · 109 阅读 · 0 评论 -
【洛谷AT2442】フェーン現象(Foehn Phenomena)【线段树】
linklinklink分析:都说是裸差分 那就线段树做(海拔的上升与下降 就区间修改 答案就单点查询具体的就跟题意模拟了然后注意a0a_0a0是000 那n,x,yn,x,yn,x,y啥的都要加111 但必须在快读+1+1+1 不然就会WAWAWA害我调了好久(CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#include&...原创 2021-04-17 14:20:14 · 130 阅读 · 0 评论 -
【Ybt OJ】[数据结构 第4章] 线段树 [前半章]
「「「数据结构」」」第444章 线段树(((前333题)))目录:A.求区间和B.区间查改C.小白逛公园大家好 我是个菜鸡 我非常喜欢暴力数据结构 于是我用线段树过了这些题A.A.A. 例题111 求区间和洛谷linklinklink分析:那就树状数组 线段树过了呗 模板CODE:#include<iostream>#include<cstdio>#include<algorithm>#include<cstring>#in原创 2021-04-16 20:33:20 · 98 阅读 · 0 评论 -
【洛谷P4145】上帝造题的七分钟2 / 花神游历各国【线段树】
linklinklink分析:因为要开根号 所以无法直接树状数组解决那就可以用线段树 也可以树状数组+++并查集然后注意到 数据最大aia_iai有101210^{12}1012 然后101210^{12}1012最多开666次根号就变成111了然后sqrt(1)=1sqrt(1)=1sqrt(1)=1 sqrt(0)=0sqrt(0)=0sqrt(0)=0所以只用对maxval>1maxval>1maxval>1的区间进行修改 然后<=1<=1<=1的..原创 2021-04-08 16:06:00 · 113 阅读 · 0 评论 -
【洛谷P2357】守墓人【线段树】
linklinklink分析:如果普通暴力做 肯定过不了 那么我们就要考虑 更高效的 数据结构比如分块 线段树 树状数组等然后就可以用 线段树过了 要加lazylazylazy标记 比分块快200ms200ms200ms至于主墓的风水和 题目说它是编号111 那其实就是区间[1,1][1,1][1,1]的风水和了 就不用专门记录了CODE:#include<iostream>#include<cstdio>#include<algorithm>#...原创 2021-03-11 16:35:18 · 157 阅读 · 0 评论 -
【洛谷 P2880】[USACO07]Balanced Lineup G【线段树】
题目描述题目For the daily milking, Farmer John’s N cows (1 ≤ N ≤ 50,000) always line up in the same order. One day Farmer John decides to organize a game of Ultimate Frisbee with some of the cows. To keep things simple, he will take a contiguous range of cows原创 2020-08-23 21:37:59 · 627 阅读 · 0 评论 -
【SSL 2648】线段树练习题五【线段树变式】
线段树练习五Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription一行N个方格,开始每个格子里的数都是0。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和;修改的规则是指定某一个格子x,加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。1≤N≤100000,提问和修改的总数可能达到100000条。Input20 //方格个数 6 //有几组操作 M原创 2020-08-09 21:09:05 · 256 阅读 · 0 评论 -
【洛谷 P1198】[JSOI2008]最大数【线段树の区间最大值】
题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:LL不超过当前数列的长度。(L > 0)2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内。注意:初始时数列是空的,没有一个数。输入格式第一行两个整数,M和 D原创 2020-07-29 14:23:53 · 515 阅读 · 0 评论 -
【洛谷 P1972】[SDOI2009]HH的项链【加强の线段树】
题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答…… 因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式一行一个正整数 n,表示项链长度。第二行 n 个正整数 a_i,表示项链中第 i 个贝壳的种类。第三行一个整数 m,表示 H 询问的个数。原创 2020-07-28 15:03:59 · 431 阅读 · 0 评论 -
【SSL 2647】线段树练习题四【线段树变式】
线段树练习四Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription在平面内有一条长度为n的线段(不计入答案),可以对进行以下2种操作:1、把从x到y的再加一条线段2、查询从x到x+1有多少条线段Input第一行输入n,m第2~m+1行,每行2个数x,y,表示从x到y再加一条线段最后一行输入2个数,为x和x+1,查询x到x+1的线段数目Output输出x到x+1的线段数目Sample Input原创 2020-07-22 16:52:34 · 249 阅读 · 0 评论 -
【SSL 2646】线段树练习题三【线段树变式】
线段树练习题三Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription给定一条长度为m的线段,有n个操作,每个操作有3个数字x,y,z表示把区间[x,y]染成颜色z,询问染完色之后,这条长度为m的线段一共有几种颜色。规定:线段的颜色可以相同。连续的相同颜色被视作一段。问x轴被分成多少段。InputOutputSample Input20 //四条,总长度为2010 19 12 9 25 13 3原创 2020-07-22 16:26:46 · 258 阅读 · 0 评论 -
【SSL 2645】线段树练习题二【线段树变式】
线段树练习题二Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription桌子上零散地放着若干个不同颜色的盒子,桌子的后方是一堵墙。如右图所示。问从桌子前方可以看到多少个盒子?假设人站得足够远(输入时,由底向上,从左到右)。InputOutputSample Input16 //桌子长度5 // 盒子数量4 712 141 56 1011 16Sample Output4分析:通原创 2020-07-22 16:04:38 · 261 阅读 · 0 评论 -
【SSL 2644】线段树练习题一【线段树做法】
线段树练习题一Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少?InputOutputSample Input20 //桌面总宽度4 //盒子数量1 5 3 87 1013 19Sample Output15分析:算模板题 先插原创 2020-07-22 11:52:34 · 274 阅读 · 0 评论 -
【SSL 1231】容易的网络游戏【变式の离散化】
容易的网络游戏(normal)Time Limit:1000MS Memory Limit:65536K、Description现在网络游戏一款接一款地推出,佳佳和他的同学们也迷上了网络游戏。他们最近在玩N款不同的网络游戏。 一些网络游戏允许玩家购买双倍经验卡。拥有双倍经验卡的玩家可以在有效期内获得更多的经验值。佳佳和他的同学们有着丰富的网游经验,对于任何一款网络游戏,只要是在双倍经验的条件下,无论谁玩都可以在单位时间内轻松获得一个单位的经验值。 国庆节马上到了,网游公司不会错过这难得的机会原创 2020-07-22 10:59:28 · 248 阅读 · 0 评论 -
【SSL 2124】涂色【双向离散化】
涂色Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription有一根长度为1000000000的棍子,一开始涂成白色。棍子上有刻度,左端点为0,右端点1000000000。由于某种原因这根棍子的某些部分被重新涂过了。重新涂的颜色可能是黑色或着白色。棍子总共被依次重新涂了N(1<=N<=5000)次。找出最后最长的白色段。Input第1行一个数N。接下来N行表示一次涂色,格式如下:ai原创 2020-07-22 10:35:30 · 240 阅读 · 0 评论 -
【SSL 2880】图形面积【二维离散化】
图形面积Time Limit:1000MS Memory Limit:65536KDescription桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积。Input输入第一行为一个数N(1≤N≤100),表示矩形的数量。下面N行,每行四个整数,分别表示每个矩形的左下角和右上角的坐标,坐标范围为–108到108之间的整数。Output输出只有一行,一个整数,表示图形的面积。Sample Input31 1 4 32 -1 3 24 0 5 2原创 2020-07-22 08:25:01 · 344 阅读 · 0 评论 -
【SSL1088&洛谷P1204】[USACO]挤牛奶【离散化】
USACO 1.2 挤牛奶Time Limit:1000MS Memory Limit:65536KDescription三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300秒(从1原创 2020-07-22 08:16:26 · 305 阅读 · 0 评论 -
【SSL 2644】线段树练习题一【离散化做法】
线段树练习题一Time Limit:10000MS Memory Limit:65536KCase Time Limit:1000MSDescription桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少?InputOutput影子总宽度Sample Input20 4 1 5 3 87 1013 19Sample Output15分析:虽说是线段树练习题 其实数据不大也原创 2020-07-21 21:41:55 · 278 阅读 · 0 评论 -
【洛谷 P1047& SSL1044】校门外的树【离散化】
2005年分区联赛普级组之二 校门外的树Time Limit:1000MS Memory Limit:65536KDescription某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米。我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置;数轴上的每个整数点,即0,1,2,……,L,都种有一棵树。 由于马路上有一些区域要用来建地铁。这些区域用它们在数轴上的起始点和终止点表示。已知任一区域的起始点和终止点的坐标都是整数,区域之间可能有重合的部分。现在要把这些区原创 2020-07-21 20:11:49 · 266 阅读 · 0 评论