
(权值)线段树
基础数据结构
不拿牌不改名
ACM刚入门,博客写错了可以留言给我啊
展开
-
权值线段树+思维 牛客练习赛66 E题 骚区间
骚区间这种贡献题可以发现,固定一个右边界 i ,然后在 1–i-1 找出所有符合条件的左边界 j ;所以可以预处理出在 (1–i-1) 中大于 a[i] 的第一个元素位置p1,和第二个元素位置p2, 那么(p2+1,p1)就是可以成为 i 的左边界,同样可以处理右边界;这里可以运用权值线段树,查找最大最小坐标;最后可以运用差分原理,统计答案;代码:#include<bits/stdc++.h>#define LL long long#define pa pair<int,in原创 2020-06-27 16:37:38 · 327 阅读 · 0 评论 -
线段树+思维 Codeforces Round #197 (Div. 2) D题 Xenia and Bit Operations
Xenia and Bit OperationsXenia the beginner programmer has a sequence a, consisting of 2n non-negative integers: a1, a2, …, a2n. Xenia is currently studying bit operations. To better understand how they work, Xenia decided to calculate some value v for a.原创 2020-06-23 12:07:37 · 238 阅读 · 0 评论 -
线段树维护等差数列 牛牛的等差数列(牛客挑战赛39 C题)
牛牛的等差数列题目大意:给你一个长度为n的数组 a[],接下来有2种操作;操作1,输入l,r,val,d表示对区间[l,r]加一个首项为val,公差为d的等差数列。操作2,输入l,r,m,表示询问区间[l,r]的和,并且对m取模。m的范围为[3,25];做过这题的弱化版:无聊的数列(洛谷 P1438)两题的1操作是一样,不一样的是2操作,洛谷P1438 是单点查询,这题是区间查询,如果是单点查询,可以直接用线段树维护一个差分数组,没这么麻烦;维护线段的区间和,懒标记分别为首项 x 和公原创 2020-05-29 14:02:59 · 880 阅读 · 0 评论 -
数学+线段树 小阳的贝壳(牛客小白月赛16 H题)
小阳的贝壳题目大意:给你一个长度为n的数组,有初值,三种操作;给区间[l,r]所有数加上x;询问区间[l,r]相邻的元素差值最大值(取绝对值);询问区间[l,r]所有数的最大公约数;最难的就是第三问了,运用到了gcd的一些原理,如果不是很懂得话想不到;gcd(a,b,c)=gcd(a,b-a,c-b)=gcd(a,gcd(b-a,c-b));依此类推,不就是维护一个差分数组,如果求[l,r]的最大公约数,不就是求gcd(a[l],gcd(b[l+1]…b[r]));(a[]代表原数组原创 2020-05-28 17:20:07 · 273 阅读 · 0 评论 -
扫描线 算法学习笔记
扫描线一般如果是从左往右扫的话,首先用结构体表示图形(长方形或正方形)的左右两边;struct D{ int f,X,Y1,Y2;}du[N*2];f 表示该边时入边还是出边,入边为 1 , 出边表示 -1 ;X 表示该边的x坐标,Y1 表示该边的上边y坐标,Y2 表示该边的下边y坐标;如图:这个还没完,可以发现Y的取值范围为1-1e9,因为我们线段树维护的是Y(这个后面讲),...原创 2020-05-01 15:17:20 · 368 阅读 · 0 评论 -
线段树+贪心 【SWTR-01】Sunny's Crystals (洛谷 P5584)
【SWTR-01】Sunny’s Crystals题目大意:给你一个序列,删除所有价值为 w 的元素;删除一个元素时必须保证该元素的位置为 2 的次幂;每删除一个元素,该元素位置后面的元素往前移一个位置;求最少删除次数;基本贪心思路为:先删除位置 i 最大(并且为2的次幂)的元素 w ,删完了以后,发现没有符合条件的元素 w ,这时只能删除前面非 w 元素,从位置1开始删,就一定符合...原创 2020-04-27 22:59:26 · 163 阅读 · 0 评论 -
线段树维护子序列的个数 「StOI-1」IOI计数(洛谷 P6373)
「StOI-1」IOI计数题目大意:为你一个长度为n的字符串,m次操作;将第x个字符改为c(c只能为I或O);计算区间[l,r]有多少子序列是IOI;这题首先要想到IOI可以由左区间的I和右区间的OI合并得到,左区间的IO和右区间的I合并;我觉得想到这个,这道题就是一道裸题;还有这个和前面那道求区间最大子串的最大值非常相似,询问过程中也要合并进行求最大值,而不是直接左右区间IO...原创 2020-04-25 23:20:21 · 326 阅读 · 0 评论 -
线段树维护区间的最大子串和 小白逛公园(洛谷 P4513)
小白逛公园题目描述在小新家附近有一条“公园路”,路的一边从南到北依次排着n个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。一开始,小白就根据公园的风景给每个公园打了分-.-。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第a个和第b个公园之间(包括a、b两个公园)选择连续的一些公园玩。小白当然希望选出的公园的分数总和尽量高咯。同时,由于一些公园的景观会有所改变,所以...原创 2020-04-19 21:40:27 · 318 阅读 · 0 评论 -
贪心+线段树 [USACO09FEB]Fair Shuttle G(洛谷 P1607)
[USACO09FEB]Fair Shuttle G题目描述Although Farmer John has no problems walking around the fair to collect prizes or see the shows, his cows are not in such good shape; a full day of walking around the f...原创 2020-04-14 20:27:58 · 261 阅读 · 0 评论 -
二分+线段树 [USACO17JAN]Cow Dance Show S(洛谷 P3611)
[USACO17JAN]Cow Dance Show S题目描述After several months of rehearsal, the cows are just about ready to put on their annual dance performance; this year they are performing the famous bovine ballet “Cow...原创 2020-04-11 15:42:47 · 517 阅读 · 0 评论 -
线段树+思维 [TJOI2018]数学计算(洛谷 P4588)
[TJOI2018]数学计算题目描述小豆现在有一个数x,初始值为1.小豆有Q次操作,操作有两种类型:1 m:x=x×m输出x%mod;2 pos:x=x/第pos次操作所乘的数(保证第pos次操作一定为类型1,对于每一个类型1的操作至多会被除一次)输出x%mod;输入格式一共有t组输入(t≤5);对于每一组输入,第一 行是两个数字 Q,mod (Q≤100000,mod≤100000...原创 2020-04-04 20:39:08 · 204 阅读 · 0 评论 -
线段树+思维 推销员(洛谷 P2672)
推销员题目描述阿明是一名推销员,他奉命到螺丝街推销他们公司的产品。螺丝街是一条死胡同,出口与入口是同一个,街道的一侧是围墙,另一侧是住户。螺丝街一共有N家住户,第i家住户到入口的距离为 Si 米。由于同一栋房子里可以有多家住户,所以可能有多家住户与入口的距离相等。阿明会从入口进入,依次向螺丝街的X家住户推销产品,然后再原路走出去。阿明每走1米就会积累1点疲劳值,向第i家住户推销产品会积累Ai...原创 2020-04-02 14:17:31 · 156 阅读 · 0 评论 -
线段树懒标记的总结+运用 XOR的艺术(洛谷 P2574)
XOR的艺术题目描述AKN 觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏。在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下拥有一个伤害串,是一个长度为 n 的只含字符 0 和字符 1 的字符串。规定这个字符串的首字符是第一个字符,即下标从 1 开始。给定一个范围 [l, r],伤害为伤害串的这个范围内中字符 1 的个数会修改伤害串中的数值,修改的方法是把 [l, r]...原创 2020-03-30 22:27:36 · 1053 阅读 · 0 评论 -
求逆序对+思维 火柴排队(洛谷 P1966)
火柴排队题目描述涵涵有两盒火柴,每盒装有 n 根火柴,每根火柴都有一个高度。 现在将每盒中的火柴各自排成一列, 同一列火柴的高度互不相同, 两列火柴之间的距离定义为:∑(ai−bi)^2其中 ai 表示第一列火柴中第 i 个火柴的高度,bi 表示第二列火柴中第 i 个火柴的高度。每列火柴中相邻两根火柴的位置都可以交换,请你通过交换使得两列火柴之间的距离最小。请问得到这个最小的距离,最少需要...原创 2020-03-30 19:52:08 · 182 阅读 · 0 评论 -
权值线段树 学习笔记
权值线段树权值线段树是基于线段树的一种数据结构;线段树维护的是区间信息,比如区间和,区间最大值等等;而权值线段树维护的是全局的值域信息,每个结点记录是该结点所包含区间的值出现的次数;权值线段树支持:查询全局第k小值查询某个值全局的排名查询全局某个值的前驱查询全局某个值的后继这些操作本来是平衡树的基本操作,但是权值线段树也可以实现,并且代码更加简单;但是一个很大的劣势是当值域...原创 2020-03-06 20:41:58 · 411 阅读 · 0 评论 -
线段树裸题 牛客小白月赛18 G题 Forsaken的三维数点
Forsaken的三维数点题目描述Forsaken现在在一个三维空间中,空间中每个点都可以用(x,y,z)(x,y,z)表示。突然,三维空间的主人出现了,如果Forsaken想要继续在三维空间中呆下去,他就必须回答三维空间主人的问题。主人会在空间中坐标为(x,y,z)(x,y,z)处加一点能量值,当他加了一定的次数之后,他会问Forsaken一个问题:如果坐标(0,0,0)(0,0,0)为球...原创 2019-10-26 16:51:52 · 185 阅读 · 0 评论 -
Codeforces Round #595 (Div. 3) D题
Too Many Segments (hard version)The only difference between easy and hard versions is constraints.You are given n segments on the coordinate axis OX. Segments can intersect, lie inside each other an...原创 2019-10-23 22:45:50 · 415 阅读 · 0 评论 -
数学思维+权值线段树 神秘数字(洛谷 P2804)
神秘数字题目背景在公元XXXX年,侦探小明收到了组织的神秘信息,在Y市的某个地方有一道神秘的门。小明到达了那个门后,发现门上有一行字:“这个门需要密码才能解锁。”小明左找右找,终于找到了一张字条:“现在给你n个数,请你求出这n个数里面,有多少个连续的数的平均数大于某个给定的数M?注意:这个数可能会很大,请输出这个数对92084931取模的结果。最终的结果即是这个门的密码。”小明苦思冥想了半天,...原创 2019-10-19 15:10:02 · 535 阅读 · 0 评论 -
线段树维护区间相同两个数的最近距离 牛客练习赛53(E题)
老瞎眼 pk 小鲜肉题目描述老瞎眼有一个长度为 n 的数组 a,为了为难小鲜肉,他准备了 Q 次询问,每次给出 一个区间[L,R],他让小鲜肉寻 找一对 l,r 使L<=l<=r<=R 且 a[l]a[l+1]a[l+2]…^a[r]=0,老瞎眼只让他回答r-l+1 最小是多少,若没有符合条件的 l,r 输出”-1”。输入描述:第一行输入 n,Q。第二行输入 n 个数,...原创 2019-10-12 21:20:02 · 285 阅读 · 0 评论 -
数学+线段树懒标记的运用 [AHOI2009]维护序列(洛谷 P2023)
P2023 [AHOI2009]维护序列题目描述老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式:(1)把数列中的一段数全部乘一个值;(2)把数列中的一段数全部加一个值;(3)询问数列中的一段数的和,由于答案可能很大,你只需输出这个数模P的值。输入格式第一行两个整数N和P(1≤P≤10000000...原创 2019-08-20 01:22:38 · 296 阅读 · 0 评论 -
思维+线段树或差分 牛客练习赛(49)筱玛爱线段树
筱玛爱线段树题目描述筱玛是一个热爱线段树的好筱玛。筱玛的爷爷马爷在游戏中被筱玛吊打了,于是他恼羞成怒,决定给筱玛出这样一道数据结构题:给定一个长度为n的数组AA,刚开始每一项的值均为0。支持以下两种操作,操作共m次:1 l r:将A_l~ A_r的每一项的值加上1。2 l r:执行操作编号在[l,r]内的所有操作各一次,保证r小于当前操作的编号。m次操作结束后,你要告诉马爷A数组...原创 2019-08-24 19:38:11 · 207 阅读 · 0 评论 -
线段树维护子序列问题 好一个一中腰鼓!(洛谷P2253)
P2253 好一个一中腰鼓!题目背景话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来。Ivan乱入:“忽一人大呼:‘好一个安塞腰鼓!’满座寂然,无敢哗者,遂与外人间隔。”题目描述设想一下,腰鼓有两面,一面是红色的,一面是白色的。初二的苏大学神想给你这个oier出一道题。假设一共有N(1<=N<=...原创 2019-08-22 19:04:23 · 171 阅读 · 0 评论 -
扫描线+重边处理 或 直接线段树维护 楼房(洛谷 P1382 )
P1382 楼房题目描述地平线(x轴)上有n个矩(lou)形(fang),用三个整数h[i],l[i],r[i]来表示第i个矩形:矩形左下角为(l[i],0),右上角为(r[i],h[i])。地平线高度为0。在轮廓线长度最小的前提下,从左到右输出轮廓线。下图为样例2。输入格式第一行一个整数n,表示矩形个数以下n行,每行3个整数h[i],l[i],r[i]表示第i个矩形。输出...原创 2019-08-26 10:03:02 · 232 阅读 · 0 评论 -
线段树+等差数列 无聊的数列(洛谷 P1438)
P1438 无聊的数列题目背景无聊的YYB总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的YYB想出了一道无聊的题:无聊的数列。。。(K峰:这题不是傻X题吗)题目描述维护一个数列{a[i]},支持两种操作:1、1 L R K D:给出一个长度等于R-L+1的等差数列,首项为K,公差为D,并将它对应加到a[L]~a[R]的每一个数上。即:令a[L]=a[L]+K,a[L+1]=a[...原创 2019-08-26 14:39:26 · 725 阅读 · 0 评论 -
数学+线段树 方差(洛谷 P1471)
P1471 方差题目背景滚粗了的HansBug在收拾旧数学书,然而他发现了什么奇妙的东西。题目描述蒟蒻HansBug在一本数学书里面发现了一个神奇的数列,包含N个实数。他想算算这个数列的平均数和方差。输入格式第一行包含两个正整数N、M,分别表示数列中实数的个数和操作的个数。第二行包含N个实数,其中第i个实数表示数列的第i项。接下来M行,每行为一条操作,格式为以下两种之一:...原创 2019-08-26 19:17:07 · 359 阅读 · 0 评论 -
线段树维护区间颜色数量 色板游戏(洛谷P1558)
P1558 色板游戏题目背景阿宝上学了,今天老师拿来了一块很长的涂色板。题目描述色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格。并从左到右标记为1, 2, … L。现在色板上只有一个颜色,老师告诉阿宝在色板上只能做两件事:“C A B C” 指在A到 B 号方格中涂上颜色 C。“P A B” 指老师的提问:A到 B号方格中有几种颜色。学校的颜料盒...原创 2019-08-27 14:14:24 · 585 阅读 · 0 评论 -
贪婪大陆(洛谷P2184)
P2184 贪婪大陆题目背景面对蚂蚁们的疯狂进攻,小FF的Tower defence宣告失败……人类被蚂蚁们逼到了Greed Island上的一个海湾。现在,小FF的后方是一望无际的大海, 前方是变异了的超级蚂蚁。 小FF还有大好前程,他可不想命丧于此, 于是他派遣手下最后一批改造SCV布置地雷以阻挡蚂蚁们的进攻。题目描述小FF最后一道防线是一条长度为N的战壕, 小FF拥有无数多种地雷,而...原创 2019-08-28 13:13:46 · 376 阅读 · 0 评论 -
[USACO08FEB]酒店Hotel(洛谷P2894)
[USACO08FEB]酒店Hotel题目描述The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and enjoy a vacation on the sunny shores of Lake Superior. Bessie, ever the competent travel...原创 2019-08-28 20:44:56 · 154 阅读 · 0 评论 -
线段树维护区间不同数的个数 [SDOI2009]HH的项链(洛谷 P1972)
[SDOI2009]HH的项链题目描述HH 有一串由各种漂亮的贝壳组成的项链。HH 相信不同的贝壳会带来好运,所以每次散步完后,他都会随意取出一段贝壳,思考它们所表达的含义。HH 不断地收集新的贝壳,因此,他的项链变得越来越长。有一天,他突然提出了一个问题:某一段贝壳中,包含了多少种不同的贝壳?这个问题很难回答……因为项链实在是太长了。于是,他只好求助睿智的你,来解决这个问题。输入格式第一...原创 2019-09-20 14:06:05 · 512 阅读 · 0 评论 -
HDU 6315 Naive Operations
In a galaxy far, far away, there are two integer sequence a and b of length n. b is a static permutation of 1 to n. Initially a is filled with zeroes. There are two kind of operations: 1. add l r: add one for al,al+1...ar 2. query l r: query ∑ri=l⌊ai/b原创 2019-08-18 20:25:13 · 162 阅读 · 0 评论