
线段树
文章平均质量分 92
数据结构——线段树
NephrenRuqInsania
这个作者很懒,什么都没留下…
展开
-
[NOIp2016] 天天爱跑步
显然,一个人的跑步路线可以看成是一段上行到lca,一段下行。首先考虑上行,一个点xxx可以观察到(s,t)(s,t)(s,t)的条件是:dep[s]−dep[x]=wxdep[s]-dep[x]=w_xdep[s]−dep[x]=wx移项:dep[x]=wx+dep[x]dep[x]=w_x+dep[x]dep[x]=wx+dep[x]相当于树上差分之后维护子树里有起点的dep[x]dep[x]dep[x]考虑下行,一个点xxx可以观察到(s,t)(s,t)(s,t)的条件是:dis(s,原创 2020-10-29 20:12:34 · 223 阅读 · 0 评论 -
[国家集训队]Middle
description给定一个序列 sss,qqq次询问,每次询问所有左端点在 [a,b][a,b][a,b] ,右端点在 [c,d][c,d][c,d] 里面的区间的中位数的最大值,强制在线subtask 1:n,q≤100subtask\ 1:n,q\leq 100subtask 1:n,q≤100subtask 2:n≤2000,m≤2.5×104subtask\ 2:n\leq 2000,m\leq 2.5\times 10^4subtask 2:n≤2原创 2020-08-09 19:22:23 · 180 阅读 · 0 评论 -
zyb十题·247
难得有md体面description给定一个偶数 NNN,现在蔡老板得到了一个由 [1,N][1,N][1,N] 内的所有偶数构成的排列 b[1..N/2]b[1..N/2]b[1..N/2]现在蔡老板又得到了一个数组 a[1..N/2]a[1..N/2]a[1..N/2],其中 a[i]=i∗2−1a[i]=i*2-1a[i]=i∗2−1蔡老板想知道,对于所有满足 aaa 和 bbb 都是它的子序列的 [1,N][1,N][1,N] 的排列 ppp,ppp 的逆序对的最小值输入格式第一行一个偶原创 2020-07-25 10:22:04 · 172 阅读 · 0 评论 -
[ZJOI2013] K大数查询
description你需要维护nnn个可重整数集,开始都是空集现在有mmm次操作1 l r k 在[l,r][l,r][l,r]的集合中加入一个数kkk2 l r k 询问[l,r][l,r][l,r]的集合的并集中的第kkk大,特别的,并集不去重solution看到动态区间第kkk大,显然想到树套树但是树状数组套权值线段树或者线段树套权值线段树都不能支持在外围的区间修改所以我们可以考虑反过来用权值树状数组套线段树外围的树状数组表示每一个数值,里面的线段树表示这个数值在每个位置上出原创 2020-07-10 07:23:04 · 253 阅读 · 0 评论 -
[THUPC2019] 不等式
description对于给定的{ai},{bi}\{a_i\},\{b_i\}{ai},{bi},定义fk(x)=∑i=1kabs(aix+bi)f_k(x)=\begin{matrix}\sum_{i=1}^k\end{matrix}\operatorname{abs}(a_ix+b_i)fk(x)=∑i=1kabs(aix+bi)对于每一个kkk,求fk(x)f_k(x)fk(x)的最小值solution首先考虑ai=1a_i=1ai=1的时候,也就是我们要求min{∑原创 2020-06-13 18:28:45 · 185 阅读 · 0 评论 -
[Ynoi2015]我回来了
在太阳西斜的这个世界里,置身天上之森等这场战争结束后,不归之人与望眼欲穿的人们,人人本着正义之名长存不灭的过去,逐渐消逝的未来我 回 来 了纵使日薄西山,即便看不到未来此时此刻的光辉,盼君勿忘——世上最幸福的女孩题面说的很绕,第222个操作,说了一堆期望什么的,最后发现要乘上(R−L+1)(R-L+1)(R−L+1),所以就是求情况之和嘛我们考虑亵渎什么时候可以被触发首先他一定会触发一次,那么这个时候需要让场上所有人的血量−d-d−d,想要触发下一次,一定需要有一个人的血量在[1,d].原创 2020-05-29 10:34:09 · 517 阅读 · 1 评论 -
2020.4.25 集训总结
T1P3605 [USACO17JAN]Promotion Counting P当时脑子抽了写了个线段树合并…不过这题是线段树合并板子题吧#include <bits/stdc++.h>using namespace std;# define Rep(i,a,b) for(int i=a;i<=b;i++)# define _Rep(i,a,b) for(int ...原创 2020-04-30 19:42:25 · 180 阅读 · 0 评论 -
2020.4.18集训总结
传送门这周集训的第二题,感觉比第三题难想这道题其实有复杂度为O(nlogn)O(n\log n)O(nlogn)的线段树分裂的做法,但是我太菜了不会,所以只能来水两个log\loglog的做法了qwq我们首先考虑这个区间如果只有000和111怎么做,那么对于一个区间,如果是升序排序,那么就把区间里面所有的000扔到左边,111扔到右边,其实就是一个简单的区间覆盖,降序也同理如果不是0...原创 2020-04-22 18:50:58 · 182 阅读 · 0 评论 -
[HEOI2013] Segment
传送门这道题其实是一个李超线段树的模板题李超线段树(lichao segment treelichao\ segment\ treelichao segment tree),用来解决多个函数在某坐标位置上的最值的问题,其实李超线段树其实是线段树的一类题目的思想,而且比较好理解,但是极难写对直接做显然不太好做,我们考虑标记永久化,让每个点储存的是当...原创 2020-04-21 19:24:52 · 208 阅读 · 0 评论 -
[HAOI2012] 高速公路
这道题有一种解法是维护区间和,区间和×i\times i×i,区间和×i2\times i^2×i2,但是这就需要很多的数学推导,这里有一种不同的方法,几乎不需要任何数学推导你只需要会等差数列求和公式平方和公式数学期望的定义线段树因为这道题的信息在边上,所以我们可以考虑让线段树存(l,r)(l,r)(l,r)之间的边的信息首先确定我们需要维护什么内容,因为这道题是选择点是等概率...原创 2020-04-19 15:21:55 · 242 阅读 · 2 评论 -
扫描线
扫描线是一种用来解决许多矩形面积/周长并的问题下面先来说矩形面积并现在我们有这样四个矩形,我们要求他们的面积并,怎么求呢?我们就需要利用到扫描线算法我们考虑把每个矩形拆成两条直线,就像这样然后我们发现我们要求的面积被扫描线分成了这样的几个部分我们可以考虑使用线段树来维护整体被覆盖的长度,同时把扫描线拆成和两种每次计算的答案就应该是线段树中被覆盖的长度但是线...原创 2020-04-14 20:56:46 · 183 阅读 · 0 评论 -
[六省联考2017]相逢是问候
看到区间修改区间查询,大家一定会觉得这是一个线段树题然后再看修改操作ai=caia_i=c^{a_i}ai=cai这玩意真的能用线段树维护吗???答案是:显然不能那怎么办呢?看到这么多落在一起的幂,好多还都一样(ccc),我们可以联想到这道题所以我们可以用扩展欧拉定理推一下,顺便给自己的博客打广告嘤嘤嘤~根据扩展欧拉定理:ac≡ac mod ϕ(p)+ϕ(p) mod pa^c\e...原创 2020-04-06 19:08:57 · 231 阅读 · 0 评论 -
[曾经的Ynoi2012] NOIP2015洋溢着希望
人生第一道YnoiYnoiYnoi当然要写博客纪念一下啦qwqqwqqwq这肯定是YnoiYnoiYnoi里面最水的一个了题意就是让你维护区间sin\sinsin和那么根据三角函数的公式可以得到sin(α+β)=sinαcosβ+cosαsinβcos(α+β)=cosαcosβ−sinαsinβ\sin(\alpha+\beta)=\sin\alpha\cos\be...原创 2020-04-03 13:49:22 · 282 阅读 · 0 评论 -
[BJWC2010] 严格次小生成树(kruskal+树剖)
这题果然是模板题一堆做法但是根本思想是一样的都是先跑一遍最小生成树,然后维护一下路径上最大值和小于最大值的最大值主要的实现方法有三种1.kruskal+倍增+lca复杂度是O(mlogm)O(mlogm)O(mlogm),优点是复杂度低,常熟不是特别大,代码短,缺点是实现细节多2.kruskal+lct复杂度还是O(mlogm)O(mlogm)O(mlogm),优点是复杂度低,代码...原创 2020-02-29 12:11:02 · 469 阅读 · 1 评论 -
[NOIP2015] 运输计划
Solution:Solution:Solution:Subtask 1:20pts\text{Subtask 1}: 20ptsSubtask 1:20ptsm=1m=1m=1好像很可做O(n)O(n)O(n)暴力一下找路径上最长的一条边删去即可Subtask 2:30pts\text{Subtask 2}:30ptsSubtask 2:30...原创 2020-02-28 16:44:24 · 168 阅读 · 0 评论 -
[TJOI2015] 旅游
本来想水题的开始以为就是一个区间维护最大值和最小值结果开开心心的打了200行程序,一测样例,过不去为什么呢?因为他要先买到宝石才能卖掉啊所以白打了200行吗qwq树剖的做法是显然的,线段树维护也是显然的但是不能光维护最大值和最小值了我们需要找一个aaa和bbb使aaa在bbb左边(形象的解释),让vala−valbval_a-val_bvala−valb最大怎么办呢?暴力找吗...原创 2020-02-26 19:11:29 · 245 阅读 · 0 评论 -
[SDOI2014] 旅行
传送门拿到这题,我:树链剖分+线段树!哎呀C有点大。动态开点!不会RE吗…其实是可能会RE的,为什么呢,我们想,最坏情况是每个点有不同的信仰,那么这个时候我们利用的空间是nlognn\log nnlogn 当nnn最坏情况下取10510^5105时,占用空间是13.2×10513.2\times10^513.2×105左右,加上修改需要两倍的空间那么应该保险起见线段树需要开27倍左右,...原创 2020-02-19 16:54:36 · 1316 阅读 · 0 评论 -
树链剖分
文章目录0.写在前面0.1 我和树链剖分的故事(2019)0.2 我和树链剖分的故事(2020)1.树链剖分1.1 前置芝士1.2 数组定义1.3 重儿子与重链2.树链剖分的代码实现2.1 dfs12.2 dfs23.树剖求lca4.树链剖分模板4.1 线段树4.2 链修改4.3 链查询4.4 子树修改与子树查询4.5 关于时间复杂度5.完整代码6.树链剖分题目推荐7.写在最后0.写在前面0....原创 2020-02-16 16:42:15 · 623 阅读 · 0 评论 -
[SPOJ]GSS系列(区间查询最大子段和问题)
文章目录1.GSS系列问题2.GSS13.GSS34.GSS45.GSS26.GSS57.写在最后1.GSS系列问题是spojspojspoj上的一组数据结构问题通常是查询最大子段和找到这组题还是要感谢akioiakioiakioi的gjmgjmgjmGSS=Greatest Sums of SubsegmentsGSS=Greatest\ Sums \ ...原创 2020-02-13 17:07:40 · 642 阅读 · 0 评论 -
P3765 总统选举
题目链接一道及其恶心的题大概题意就是维护动态的区间中大于一半的数怎么办呢?我们把这个过程拆成两部分维护区间众数判断众数是不是大于一半对于第一步,我们可以用线段树来维护对于第二步,我们可以用平衡树来维护所以,这道题就是线段树+平衡树首先线段树维护两个量valvalval和cntcntcnt分别表示当前区间的众数和这个区间的众数的优势(比第二大的多多少)那么pushuppush...原创 2020-02-02 16:45:00 · 284 阅读 · 0 评论 -
[USACO13DEC] 最优挤奶Optimal Milking
题目描述Farmer John has recently purchased a new barn containing N milking machines (1 <= N <= 40,000), conveniently numbered 1…N and arranged in a row.Milking machine i is capable of extracting M...原创 2020-01-29 16:16:33 · 614 阅读 · 0 评论 -
P2184 贪婪大陆
这道题看上去就是一道线段树(树状数组)的题,但是我们似乎不能直接去做,所以我们想到我们可以把这个情况转化一下正着不好做,我们想到差分我们开两棵线段树,一棵表示开始的点,一棵表示结束的点,对于每一个加入的点,我们把他的lll加入到起点线段树的lll位置,表示在这个点开始有一个新的颜色,rrr加入到终点线段树的r+1r+1r+1的位置,表示在这个点开始少了一种颜色,那么答案也显而易见了,就是:...原创 2020-01-28 19:45:55 · 198 阅读 · 0 评论 -
[USACO18JAN] Lifeguards S
题目描述FJ为他的奶牛们建造了一个游泳池,FJ认为这将有助于他们放松身心以及生产更多牛奶。为了确保奶牛们的安全,FJ雇佣了N头牛,作为泳池的救生员,每一个救生员在一天内都会有一定的事情,并且这些事情都会覆盖一天内的一段时间。为了简单起见,泳池从时间t=0时开门,直到时间t=1000000000关门,所以每个事情都可以用两个整数来描述,给出奶牛救生员开始以及结束事情的时间。例如,一个救生员在时间...原创 2020-01-26 18:44:09 · 990 阅读 · 0 评论 -
[CF35E] Parade
No Great Victory anniversary in Berland has ever passed without the war parade. This year is not an exception. That’s why the preparations are on in full strength. Tanks are building a line, artillery...原创 2020-01-25 15:26:16 · 270 阅读 · 0 评论 -
[CF19D] Points
Pete and Bob invented a new interesting game. Bob takes a sheet of paper and locates a Cartesian coordinate system on it as follows: point (0, 0) is located in the bottom-left corner, Ox axis is direc...原创 2020-01-24 13:25:05 · 531 阅读 · 0 评论 -
[POJ2828]Buy Tickets
Railway tickets were difficult to buy around the Lunar New Year in China, so we must get up early and join a long queue…The Lunar New Year was approaching, but unluckily the Little Cat still had sche...原创 2020-01-23 18:09:19 · 295 阅读 · 0 评论