线段树
ylsoi
这个作者很懒,什么都没留下…
展开
-
[SP3267] DQUERY - D-query计算区间内颜色种数的离线做法——树状数组or线段树
English VietnameseGiven a sequence of n numbers a 1 {1} 1 , a 2 {2} 2 , …, a n {n} n and a number of d-queries. A d-query is a pair (i, j) (1 ≤ i ≤ j ≤ n). For each d-query (i, j), you have to retu...原创 2018-02-24 17:11:02 · 361 阅读 · 0 评论 -
[uoj30][CF Round #278]Tourists——树链剖分+圆方树
题目大意:给定一个无向图,操作一可以修改一个点的点权,操作二询问从x到y的点不重复路径中的点权最小值。思路:无向图询问点不重复路径中的点权最小值,路径的条数很多,但是我们发现如果路上有两点在一个点双内,那么这两点之间的路径是可以经过这个点双内的任意一点而获得这个点双之内的最小值的,所以只需要对原图建出圆方树就好了。 建出圆方树之后圆点为原来的权值,方点为它周围所有圆点的权值的最小...原创 2018-08-16 08:28:19 · 227 阅读 · 0 评论 -
主席树区间动态第K大学习笔记
模板题:bzoj1901学习笔记:静态的区间第K大主席树用到了这么一个思想,就是维护不同的前缀权值线段树,利用不同区间的权值线段树可减的思想来达到查询某一区间的权值线段树的目的。 但是一旦要求修改的话,利用上面那种维护前缀权值线段树就有点麻烦了,因为修改一个值之后所有包括了这个值的前缀权值线段树都要修改,复杂度显然是有问题的。 然后动态的主席树便换了一种思路,想一想如果只是动态的前...原创 2018-08-17 09:02:26 · 425 阅读 · 0 评论 -
[CF446C]DZY Loves Fibonacci Numbers——线段树+斐波那契数列
题目大意:两种操作,区间加上一个斐波那契数列,区间求和。思路:考虑用线段树来实现区间加法,但是加上的是一个斐波那契数列,所以加法的标记为一段斐波那契数列。 显然错开的斐波那契数列可能加到线段树的同一个结点,似乎不好合并这个区间拥有的两段斐波那契数列的标记。于是考虑斐波那契数列本身的性质,它是形为fi=fi−1+fi−2fi=fi−1+fi−2f_i=f_{i-1}+f_{i-2}这样...原创 2018-08-24 19:22:31 · 920 阅读 · 0 评论 -
[loj2255][SNOI2017]炸弹——线段树优化建图+缩点+DAGDP
题目大意:在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢? 思路:简单地在序列上面建图然后DAG DP即可,注意要先缩点。 但是发现边数可能会有n2n2n^2,于是利用线段树来...原创 2018-09-13 22:14:43 · 375 阅读 · 0 评论 -
[51nod1766]树上的最远点对——线段树维护树的直径
题目大意:n个点被n-1条边连接成了一颗树,给出ab和cd两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出max{dis(i,j) |a<=i<=b,c<=j<=d}(PS 建议使用读入优化)思路:首先必须要知道一个结论:若集合A中的点的最远点对为(a,b),集合B中的最远点对为(c,d),那么集合AUB中的最远点对必定是a,b,c,d四...原创 2018-10-09 19:38:13 · 485 阅读 · 0 评论 -
[bzoj2725]故乡的梦——最短路+线段树
题目大意:给定一个带权无向图,每次询问删除一条边之后从S到T的最短路是多少?(各个询问之间独立)思路:如果删除的边不在最短路中或者可以被替换,那么答案即为最短路。如果删除的边在最短路中并且不可以被替换,考虑将这条边删除的新图:假设原来的最短路为S−&gt;TS-&gt;TS−>T,那么新的最短路一定是S−&gt;u−&gt;x−&gt;y−&...原创 2018-10-27 14:26:23 · 272 阅读 · 0 评论 -
[bzoj5286][Hnoi2018]转盘——线段树
题目大意:一次小 G 和小 H 原本准备去聚餐,但由于太麻烦了于是题面简化如下:一个转盘上有摆成一圈的原创 2018-12-03 20:50:23 · 234 阅读 · 0 评论 -
[uoj164][清华集训2015]V——线段树
题目大意:传送门思路:对于这么多的操作,以及询问时的取历史最大值,用一般的线段树显然不太好做。于是考虑把每个操作转化成hi=max(hi+a,b)h_i=\max(h_i+a,b)hi=max(hi+a,b)的形式,不难发现第一种和第二种就是hi=max(hi+x,0)h_i=\max(h_i+x,0)hi=max(hi+x,0),第三种即hi=max(hi−inf,x)h_...原创 2019-01-03 17:37:50 · 278 阅读 · 0 评论 -
[CF1091]E. New Year and the Acquaintance Estimation——Erdős–Gallai theorem+线段树
题目大意:给定n个点的度数序列,再添加一个点,求添加的这个点的度数为多少时,满足这n+1个点可以构成简单无向图。思路:首先你得要打开CF比赛里的那个wiki链接,然后有了Erdős–Gallai 定理。∀k∈[1,n] ∑i=1kdi≤k(k−1)+∑i=k+1nmin(di,k)\forall k\in [1,n]\ \ \ \sum_{i=1}^{...原创 2019-01-01 21:37:53 · 396 阅读 · 0 评论 -
[bzoj1758][Wc2010]重建计划——长链剖分+线段树+分数规划
题目大意:给定一颗带权的树,求一条长路在[L,R][L,R][L,R]的路径,权值的平均数最大。思路:显然先分数规划,二分答案,然后考虑怎么check。考虑一个简单的树型DP,记fi,jf_{i,j}fi,j为i子树内距离i为j的点中路径长度和最大是多少,然后一个点可以从它的儿子转移过来,在转移的时候每次记录前缀枚举新添加进来的子树深度计算一遍答案。这样复杂度O(n2)O(n^2)O(...原创 2019-01-07 20:39:19 · 213 阅读 · 0 评论 -
[BJWC2018]Border 的四种求法——SAM+线段树合并+DSU+链分治
Border 的四种求法给定一个串,q次询问[l,r]的border长度。思路首先先对整个串建sam,然后我们对包含r的每一个状态去计算。设当前状态的最大长度为len,如果一个结束位置i是合法的,当且仅当l≤i&lt;rl\leq i &lt; rl≤i<r,且i&lt;l+leni &lt; l+leni<l+len,然后我们需要找到一个最大的...原创 2019-03-13 16:21:15 · 970 阅读 · 0 评论 -
[loj6208]树上询问——线段树
题目大意:有一棵 nnn节点的树,根为 111 号节点。每个节点有两个权值 ki,tiki,tik_i, t_i,初始值均为 000。 给出三种操作: Add(x,d)Add(x,d)\mathrm{Add}( x , d )操作:将xxx到根的路径上所有点的ki←ki+dki←ki+dk_i\leftarrow k_i + d Mul(x,d)Mul(x,d)\mathrm{Mul...原创 2018-08-02 13:27:13 · 546 阅读 · 0 评论 -
[bzoj4756][Usaco2017 Jan]Promotion Counting——线段树合并入门
题目大意:n只奶牛构成了一个树形的公司,每个奶牛有一个能力值pi,1号奶牛为树根。 问对于每个奶牛来说,它的子树中有几个能力值比它大的。思路:用权值线段树来查询子树中比它大的结点有多少个。但是权值线段树需要不断地合并。 于是在递归的时候线段树合并就好了。#include<bits/stdc++.h>#define REP(i,a,b) for(int i...原创 2018-08-05 11:14:31 · 229 阅读 · 0 评论 -
[hdu5405] sometimes naive——树链剖分+线段树
[hdu5405]sometimes naiveProblem DescriptionRhason Cheung had a naive problem, and asked Teacher Mai for help. But Teacher Mai thought this problem was too simple, sometimes naive. So she ask you...原创 2018-01-12 19:55:42 · 2474 阅读 · 0 评论 -
[noip2015]运输计划——倍增
题目背景公元 2044 年,人类进入了宇宙纪元。题目描述L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球。小 P 掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有一艘物流飞船需要从 ui 号星球沿最快的宇航路径飞行到 vi 号星球去。显然,飞船驶过一条航道 是需要时间的,对于航道 j,任意飞船驶...原创 2017-10-16 21:36:20 · 1555 阅读 · 0 评论 -
[九省联考2018]IIIDX——贪心
Description:【题目背景】 Osu听过没?那是Konano最喜欢的一款音乐游戏,而他的梦想就是有一天自己也能做个独特酷炫的音乐游戏。现在 ,他在世界知名游戏公司KONMAI内工作,离他的梦想也越来越近了。这款音乐游戏内一般都包含了许多歌曲,歌曲 越多,玩家越不易玩腻。同时,为了使玩家在游戏上氪更多的金钱花更多的时间,游戏一开始一般都不会将所有曲 目公开,有些曲目你需要通关某首...原创 2018-04-12 13:46:34 · 377 阅读 · 0 评论 -
[bzoj2957]: 楼房重建——线段树
题目大意: 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线...原创 2018-04-25 21:14:34 · 386 阅读 · 0 评论 -
[poj2082]Terrible Sets——线段树上二分(介是你从未打过的船新解法)
题目大意:给定n个矩形在x轴上紧贴x轴依次排开,求在这n个矩形可以围成的封闭图形内的最大矩形。思路:Itache真的是太强了,一下子就想到了线段树做法。对于最大的矩形,不难发现,它的上界一定是某一个给定矩形的上界。反之,每一个给定矩形的上界都有可能成为最大的矩形的上界,所以我们只要依次选定一个矩形往旁边拓展就好了。但是这样的时间复杂度太高,发现要求的是左边最后一个比上界小的矩形的坐...原创 2018-05-05 08:10:12 · 1943 阅读 · 0 评论 -
[noip2017]列队phalanx——线段树动态加点
Description思路:先想一下当x=1的时候该怎么做,发现只有一条链维护删除一个元素添加到后面,其实就是一个很长的数组,只是后面一开始空了一截,删除的话就空在那里,再放到后面最后面,要找第k个元素的话用线段树表示这个点存在不存在然后树上二分即可。 然后考虑满分做法,只是将一条链换成了n条链,显然,不管是线段树还是存值的数组都开不下,但是发现我们不知道的只是后面的点,前面点可以通过坐...原创 2018-05-18 23:47:36 · 488 阅读 · 0 评论 -
[bzojnoip十连测]小P的单调序列——权值线段树优化DP
Description小P最近喜欢上了单调数列,因为他觉得单调的数列具有非常多优美的性质。 经过 小P复杂的数学推导,他计算出了一个单调增数列的艺术价值等于该数列中所有数的总 和。 并且以这个为基础,小P还可以求出任意一个数列的艺术价值,它等于将这个数列 阴次划分为若干个极长单调区间(相邻两个单调区间的单调性必须不相同)后,每个单 调区间中元素总和的平均值。 比如对于数列 3 7 9...原创 2018-05-22 14:19:21 · 368 阅读 · 0 评论 -
[CF916E]Jamie and Tree——树链剖分+线段树
题目大意:有一棵n个点的树,每个节点上有一个权值wi,最开始根为1号点.现在有3种 类型的操作: • 1 root, 表示将根设为root. • 2 u v x, 设u, v的最近公共祖先为p, 将p的子树中的所有点的权值加上x. • 3 u, 查询u的子树中的所有点的权值和. 对于每个3操作,输出答案.思路:如果真的换根的话肯定是不行的。。。所以我们要想办法在原树上面搞出不...原创 2018-06-20 22:01:00 · 727 阅读 · 0 评论 -
[loj6062]「2017 山东一轮集训 Day2」Pair——Hall定理+线段树
题目大意:给出一个长度为nnn的数列{ai}{ai}\{ a_i \}和一个长度为mmm的数列{bi}{bi}\{ b_i \}求{ai}{ai}\{ a_i \}有多少个长度为mmm的连续子数列能与{bi}{bi}\{ b_i \}匹配。 两个数列可以匹配,当且仅当存在一种方案,使两个数列中的数可以两两配对,两个数可以配对当且仅当它们的和不小于hhh。思路:感觉还是很好的一道题...原创 2018-06-29 10:55:35 · 588 阅读 · 0 评论 -
[bzoj5404]party——树链剖分+Hall定理
题面:思路:好像虽然思维难度不大但是考试的时候还是没有很多的人A。 首先我们可以发现既然要所有的人都要尽快到达的话那肯定是在lca的地方聚会。 然后题意就可以简化为每一个人都到lca并且只可以选择lca上的特产,所以我们要处理一条链上的颜色种数。 然后我就不会处理了,后来问了一下学长发现竟然使用bitset来维护,因为注意到颜色总共的种类只开到了1000,所以用个线段树+bi...原创 2018-06-28 17:02:28 · 345 阅读 · 0 评论 -
[bzoj1537][POI2005]Aut- The Bus——二维偏序问题+线段树
题目大意:平面上有kkk个点,每一个点有一个权值,求一条路径使得从左上角到右下角最短同时经过的点得权值总和最大。思路:实际上不难发现这就是一个DP,每一个点可以从横坐标比它大并且纵坐标比它大的点转移过来,所以我们必须要保证它之前的状态在它的前面处理,其实这就是一个经典的二维偏序,我们先按照横坐标从大到小排序,再按照纵坐标从大到小排序之后处理就可以保证状态转移的合法性了。用一个线段树...原创 2018-07-23 20:11:51 · 461 阅读 · 0 评论 -
[bzoj1135][POI2009]Lyz——Hall定理+线段树
题目大意:初始时滑冰俱乐部有1到n号的溜冰鞋各k双。已知x号脚的人可以穿x到x+d的溜冰鞋。 有m次操作,每次包含两个数ri,xi代表来了xi个ri号脚的人。xi为负,则代表走了这么多人。 对于每次操作,输出溜冰鞋是否足够。思路:感觉挺不错的一道题,果然POI的题目质量确实不错。 显然这是人和鞋子的二分图匹配,然后我们要求人这一边是否有完备匹配,那就用Hall定理了。 用Hall定...原创 2018-07-12 19:32:36 · 324 阅读 · 0 评论 -
[SCU1913]一条大笨龙送礼物——二分答案+线段树
题目大意:点这里思路:观察到操作其实就是将区间内的数字重新排序之后再按照某种方式来排列。模拟的成本显然太高了。考虑二分答案,假设目前答案为x,那么我们把小于等于x的数全部设为0,大于x的数全部设为1,这样整个序列就变成了只有两种数字的序列,每一次操作可以把这一段区间看成三段连续的101来操作。这样我们只需要用线段树来实现区间覆值和区间查询,最后看第k为是比x大还是比x小就好了。时间复杂...原创 2018-08-05 08:40:54 · 160 阅读 · 0 评论 -
BJOI2018链上二次求和——线段树
BJOI2018 链上二次求和思路[l,r]的限制可以拆成[1,l-1],[1,r],然后考虑推式子。设sis_isi为aia_iai的前缀和。ans=∑i=1x∑j=insj−sj−i{\rm ans}=\sum_{i=1}^{x}\sum_{j=i}^{n}s_{j}-s_{j-i}ans=∑i=1x∑j=insj−sj−i设tit_iti为sis_isi的前缀和。...原创 2019-03-31 22:18:10 · 295 阅读 · 0 评论