线段树
文章平均质量分 59
a_crazy_czy
日后,尽量别叫今天的泪白流。
展开
-
[GDOI模拟2016.03.05]魔道研究
题目大意给定tt个可重集TiT_i,从第ii个可重集中选择前ii大,组成可重集SS。 有mm个操作,分为两种,分别是给tt集合删除某一个元素或是给tt集合加入某一个元素。维护每次操作后SS的前nn大。m,n,t≤300000m,n,t\le300000,所有元素都为不大于10910^9的正整数。题目分析显然我们可以使用数据结构维护TT集合以及SS集合。 添加操作时,我们在对应TiT_i集合中插入原创 2016-03-06 13:41:54 · 893 阅读 · 1 评论 -
[JZOJ5039]查询
题目大意给出平面上的nn条线段(用(x1,y1)(x_1,y_1)和(x2,y2)(x_2,y_2)表示线段的端点)。 你要支持以下两个操作(总共qq个): ∙ 0 (x1,y1) (x2,y2)\bullet\ 0\ (x_1,y_1)\ (x_2,y_2):表示加入一条新的线段 ∙ 1 x0\bullet\ 1\ x_0:表示询问所有线段中,xx坐标在x0x_0处的最高点的yy坐标(如果对原创 2017-04-02 16:31:58 · 473 阅读 · 0 评论 -
[CF407E]k-d-sequence
题目大意给定一个长度为nn的序列{ai}\{a_i\},你需要找到一个长度最小(如有多个选择最左的)的区间,使其满足这个区间内加入至多kk个数之后,把这个区间内的数排序是一个公差为dd的等差数列。1≤n≤2×105,0≤k≤2×105,0≤d≤109,−109≤ai≤1091\le n\le2\times10^5,0\le k\le2\times10^5,0\le d\le10^9,-10^9\le原创 2017-04-11 22:05:51 · 737 阅读 · 0 评论 -
[BZOJ3064][Tyvj1518]CPU监控
题目大意给定一个长度为nn的序列{ai}\{a_i\}。有qq个操作,操作分如下几种: ∙ Q x y\bullet\ Q\ x\ y:询问序列上区间[x,y][x,y]的最大值 ∙ A x y\bullet\ A\ x\ y:询问序列上区间[x,y][x,y]的历史最大值 ∙ P x y z\bullet\ P\ x\ y\ z:将序列上区间[x,y][x,y]的值都增加zz ∙ C x原创 2017-04-18 09:10:43 · 642 阅读 · 0 评论 -
[JZOJ5055]树上路径
题目大意给定一棵nn个节点的无根树,每个点都有一个非负整数的权值vali{val}_i,定义一条路径的价值为路径上的点权和减去路径的点权最大值。 给定参数pp,请求出树上有多少条价值是pp的倍数的路径。 注意:单点也算路径。并且路径(u,v)(u,v)和(v,u)(v,u)只算一次。1≤n≤105,1≤p≤107,0≤vali≤1091\le n\le10^5,1\le p\le10^7,0\l原创 2017-04-13 22:28:32 · 1269 阅读 · 0 评论 -
[JZOJ5060]公路建设
题目大意一个图有nn个点,mm条无向边,其中第ii条边的权值是cic_i。 有qq个询问,每次给定一个区间[li,ri][l_i,r_i],请你计算出只选择(编号在)这个区间内的边,在使图中连通块数目尽量小的前提之下,选择的边的权值和的最小值。1≤n≤102,1≤m≤105,1≤q≤1.5×1041\le n\le10^2,1\le m\le10^5,1\le q\le1.5\times10^4题原创 2017-04-15 21:46:34 · 785 阅读 · 0 评论 -
[HNOI2017]影魔
题目大意给定一个长度为nn的排列,对于一个区间,如果两个端点分别是这个区间的最大值和次大值,有p1p_1的贡献,否则如果其中一个端点是这个区间的最大值,有p2p_2的贡献。 现在给你qq个询问,每次询问一个区间[L,R][L,R],问所有被区间完全包含的区间的贡献和。1≤n,q≤2×105,1≤p1,p2≤1031\le n,q\le2\times10^5,1\le p_1,p_2\le10^3题原创 2017-04-19 21:23:29 · 1430 阅读 · 0 评论 -
[JZOJ5077]树的难题
题目大意给定一棵nn个点的无根树,树上每一条边都有颜色。一共mm种颜色,编号从11到mm。第ii种颜色权值为cic_i。 对于树上的一条简单路径,路径上经过的所有边按照顺序组成一个颜色序列,序列可以划分成若干个相同颜色段。定义路径权值为颜色序列上每一个同颜色段的颜色权值之和。 你要计算出边数在[l,r][l,r]之内的所有简单路径中,路径权值的最大值。1≤m≤n≤2×105,1≤l≤r≤n,|c原创 2017-04-20 17:21:24 · 483 阅读 · 0 评论 -
[SDOI2017]树点涂色
题目大意给定一棵nn个点的有根树(根节点是11),一开始每个点的颜色都不同。 定义一条路径的权值是路上点的不同颜色数目。 你需要支持qq个操作,有以下三种 ∙ \bullet\ 把点xx到根节点路径上所有点染上一种没有出现过的新颜色。 ∙ \bullet\ 求点xx到点yy路径的权值。 ∙ \bullet\ 在以xx为根的子树中选择一个点,使得该点到根节点路径的权值最大,求最大权值。1≤n原创 2017-04-23 15:47:19 · 1004 阅读 · 0 评论 -
[BZOJ2138]stone/[JZOJ5152]本无不散之宴
题目大意给定一个长度为nn的序列{an}\{a_n\},以及qq个操作。 操作顺次执行,第ii次操作要求把下标在区间[li,ri][l_i,r_i]内的数都各自减去一个非负整数(可以不同),使得减了之后这些数依然非负,并且减去的数之和为KiK_i。如果这个区间的和都要比KiK_i小,那就要把这个区间的数全部变成00(即每个数都减去自己)。保证给定的任意两个区间都不存在包含关系。 一个操作的原创 2017-06-21 14:26:34 · 972 阅读 · 1 评论 -
[XJOI]栈
题目大意有nn个单调栈(单调递减)排成一排,一开始每个栈都是空的。 有qq个操作,每次会给下标在[l,r][l,r]内的栈都push一个xx或者查询下标为kk的栈里面所有数的和。1≤n,q≤2×105,1≤x≤1091\le n,q\le2\times10^5,1\le x\le10^9题目分析考虑离线,把所有操作挂在对应端点上,然后从左向右扫描线。 以时间为下标建立线段树,考虑动态地维护当前扫原创 2017-07-15 16:35:32 · 691 阅读 · 0 评论 -
[NOIP2016]天天爱跑步
题目大意给定一个nn个节点,n−1n-1条边的树。有mm个玩家,第ii个玩家从xix_i走树上最短路径到yiy_i。玩家第00秒在自己的起点上,然后每秒移动一条边,移动到终点后结束移动。 每个节点上有一个观察员以及权值wiw_i。如果有一个玩家在其移动的第wiw_i秒恰好到达这个点,那么这个点上的观察员就会观察到他(如果这个点是终点,且玩家在wiw_i秒之前到达不算)。 求每个点上的观察员分别观原创 2016-11-21 14:59:15 · 39323 阅读 · 0 评论 -
[JZOJ4684]卡牌游戏
题目描述 1≤n≤500001\le n\le50000题目分析一个显然的性质,假设有ii局是使用第一个规则,那么这一部分一定用掉前ii大的牌。 贪心也是十分显然的,前半段中,一张对方的牌必须由己方中能打掉这张牌的数值最小的牌来匹配。后半段类似。 由于前后两部分求解是互不影响的,我们考虑使用前缀和后缀的方式来分别处理两部分。 由于是排列,所以我们可以使用线段树维护每一个数值区间内未匹配牌数(原创 2016-08-14 22:49:21 · 935 阅读 · 0 评论 -
[Feyat Cup 1.0][JZOJ3338]法法塔的奖励
题目大意给定一棵nn个节点的树,每个点有一个权值viv_i。 对于以xx为根的子树,我们要从中找出一条从叶子节点到xx的路径,将所有权值按顺序排列,求其最长不下降子序列(点xx一定要选),所有这种路径中最长的最长不下降子序列长度即为该子树答案。 求以每一个节点为根的子树的答案。1≤vi≤n≤1051\le v_i\le n\le 10^5题目分析显然我们需要递归处理子树,合并所有儿子子树的信息,原创 2016-03-09 19:47:24 · 900 阅读 · 0 评论 -
[JZOJ4298]我的天
题目大意有nn个人排成一排,一开始每个人只认识它自己。 有mm个操作,每次操作选择区间[l,r][l,r]中的所有人相互认识,要求输出每次操作会出现多少对新认识的人。 认识是不能传递的,必须直接认识。1≤n,m≤3×1051\le n,m\le 3\times10^5题目分析避免重复,我们只计算小编号认识大编号的情况。 设lil_i为第ii个人认识的最左边的人的编号。设所有lil_i和为las原创 2016-04-06 20:40:09 · 682 阅读 · 0 评论 -
[CF280D/CF172][BZOJ3272/3638][JZOJ4400]k-Maximum Subsequence Sum
题目大意给定数列{an}\{a_n\},要求维护以下操作和询问: ∙\bullet将aia_i赋值为valval ∙\bullet在区间[l,r][l,r]中选出最多kk个互不相交的子段列,最大化这些选中的数的和,输出这个最大值 操作和询问共mm个。1≤n≤105,1≤m≤105,|ai|≤500,|val|≤500,1≤k≤201\le n\le 10^5,1\le m\le 10^5,|a原创 2016-03-27 12:31:46 · 1034 阅读 · 0 评论 -
[JZOJ4296]有趣的有趣的家庭菜园
题目描述有nn棵植株排成一排,第ii棵植株的高度、价值和拔除的花费分别为hih_i、pip_i和cic_i。 能够获得第ii棵植株的价值,当且仅当这棵植株左边所有高度大于它的植株都被拔除,或者右边所有高度大于它的植株都被拔除。 最大化收益(价值和与花费和的差)。3≤n≤105,1≤hi,pi,ci≤1093\le n\le10^5,1\le h_i,p_i,c_i\le 10^9题目分析我们观察原创 2016-04-08 20:58:41 · 1072 阅读 · 1 评论 -
[JZOJ4468][JSOI2016?]轻重路径
题目大意给定一棵nn个节点的二叉树,对其进行轻重路径剖分,sizesize相同则优先选择左儿子。 有qq个操作,每次会删除一个点xx(有持续影响),要求动态维护轻重路径剖分(如果sizesize相同优先保留原本剖分方案)。 你需要输出q+1q+1个数,第一个表示删点前的重边指向节点编号之和,后面qq个都是删点后的重边指向节点编号和。1≤n,q≤2000001\le n,q\le 200000题目原创 2016-04-24 12:38:25 · 1124 阅读 · 1 评论 -
[JZOJ3397]雨天的尾巴
题目大意一棵nn个节点的树,有mm个修改操作,都为将从xx到yy路径上所有点添加一个种类为zz的信息。 询问所有操作完成之后,所有点个数最多的分别是哪一个种类的信息。1≤n,m≤105,1≤z≤1091\le n,m\le 10^5,1\le z\le 10^9题目分析将种类离散化,然后直接建权值线段树,在树上线段树合并即可。 每一个修改可以拆成对四个点的单点修改。 时间复杂度O((n+m)l原创 2016-05-23 20:48:26 · 936 阅读 · 0 评论 -
[51NOD 1766]树上的最远点对
题目大意nn个点被n−1n-1条边连接成了一颗树,边有权值wiw_i。有qq个询问,给出[a,b][a,b]和[c,d][c,d]两个区间,表示点的标号请你求出两个区间内各选一点之间的最大距离,即你需要求出 max{dis(i,j)|i∈[a,b],j∈[c,d]}max\{dis(i,j)|i\in[a,b],j\in[c,d]\}1≤n,q≤105,1≤wi≤1041\le n,q\le原创 2016-06-30 16:51:00 · 1548 阅读 · 0 评论 -
[JZOJ4567]nekopara
题目大意一棵树,有nn个节点,边有权值lil_i。给定数组aa。 有qq个询问,每次询问给出一条路径的起点、终点和limlim。你要将路径展开,设某个点ii前面连续的ll大于limlim的边的数量为e(i)e(i)。求 ∑x on pathae(x)\sum_{x\ on\ path}a_{e(x)}1≤n,q≤105,ai≤103,li,l≤1091\le n,q\le10^5,a_i\l原创 2016-06-30 21:49:08 · 1060 阅读 · 0 评论 -
线段树区间取max黑科技
Preface在训练中我们常常会遇到这样一种猥琐的数据结构操作:区间取maxmax,即将区间内小于limlim的数改成limlim。在这里我做一些总结。TextCase 1要求:兹瓷区间maxmax,还有其它各种普通操作,查询区间和 特殊性:数值满足单调性 Solution:由于单调性,我们可以在线段树上二分出小于limlim的区间,然后就变成了一个区间赋值(setset)操作。Case 2要求原创 2016-07-07 16:50:51 · 4204 阅读 · 0 评论 -
[JZOJ4918]最近公共祖先
题目大意给定一棵nn个节点的有根树,节点编号11到nn,根节点为11号点。每个节点要么是黑色要么是白色,并且有权值wiw_i,初始时所有节点都是白色的。现在总共有mm个操作,分以下两种: ∙\bullet将节点vv的颜色修改为黑色黑色 ∙\bullet给定vv,要求找到一个黑色节点uu,最大化啊wlca(u,v)w_{\mathrm{lca(u,v)}}。如果此时树上不存在黑色节点,输出−1-1原创 2016-12-10 20:50:01 · 1179 阅读 · 0 评论