线段树
yashem66
长期提供绕地人造卫星清洗除尘服务。
展开
-
BZOJ3307 雨天的尾巴 (树链剖分 线段树合并 dfs相关)
题目大意N个点,形成一个树状结构。有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品。完成所有发放后,每个点存放最多的是哪种物品。题解看到这道题之后我本能的想法就是位置线段树套权值线段树的,但是看了一下,这道题的时间限制和空间限制卡得都比较近,树套树卡起来应该是十分的困难的。这道题虽然是处理树上问题,但是我们先考虑如何处理这样的区间问题。 如果所有的操作和询问都是原创 2017-04-17 13:44:32 · 1222 阅读 · 0 评论 -
BZOJ4127 Abs (树链剖分 线段树)
题目大意给出一棵带权有根树,要求完成以下几种操作:1 u v d 表示将路径 (u,v) 加d (0<=d<=1e8) 2 u v 表示询问路径 (u,v) 上点权绝对值的和题解正常树剖,用线段树维护几个信息:绝对值的和,区间内负数的个数,区间内最大的负数 以及 最大的负数所在的位置,因为有区间加操作,所以还要维护一个加标记。这道题棘手的地方就在于,数字的正负性会随着区间加操作而改变,所以说不能原创 2017-04-14 14:56:53 · 1298 阅读 · 0 评论 -
冲刺NOI2017 (20) 距离 (可持久化树链剖分)
题目大意给定一棵nn个点的边带权的树,以及一个排列pp,有qq个询问,给定点 l,r,kl,r,k,希望你求出: ∑点j∈l到r的最短路径dis(p[j],k)\sum_{点j\in{l到r的最短路径}}dis(p[j],k) 其中dis(u,v)dis(u,v)表示在树上uu到vv的最短路径的长度。数据范围:(n,p<=2∗105)(n,p<=2*10^5 )题解我们先抛开这个道题不谈,讨论另原创 2017-06-16 17:20:34 · 898 阅读 · 0 评论 -
BZOJ1858 序列操作 (线段树)
题目大意要求维护一个01序列,要求完成以下几种操作:0 x y 把区间[x,y]内的数字都变成0 1 x y 把区间[x,y]内的数字都变成1 2 x y 把区间[x,y]内的数字都异或1(取反) 3 x y 询问区间[x,y]内的数字1的个数 4 x y 询问区间[x,y]内最长连续数字1的个数题解线段数操作,因为有要完成操作4,所以要维护区间最左端和最右端的连续最长的长度。因为有取反操作原创 2017-04-13 15:35:58 · 1575 阅读 · 0 评论 -
BZOJ1012 最大数maxnumber (线段树)
题目大意现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是非负整数并且在长整范围内。注意:初始原创 2017-04-07 11:46:44 · 591 阅读 · 0 评论 -
Codeforces 785E 题解(树套树-树状数组套线段树)
题目大意:对于一个长度为n的序列进行k次操作,每次操作都是交换序列中的某两个数。对于每一个操作,回答当前序列中有多少个逆序对。题解:每次更改序列都可以理解为,将答案减去被调换的位置原有数字的对答案的贡献,然后调换两数字的位置,然后将答案加上被调换的位置在调换之后的数字对答案的贡献。每一个数字对答案的贡献都可以理解为在其出现位置之前的比它大的数字的个数加上在其出现位置之后的比它小的数字的个数。由此,用原创 2017-03-16 19:50:29 · 583 阅读 · 0 评论 -
【Nowcoder】2018 ACM-ICPC 上海大都会赛 A Simple Problem with Integers (线段树 思维)
题目大意对于一个序列,进行以下两种操作:1)将区间 [li,ri] 内的数字平方后 mod 2018,2)求不取模的平方和。解题思路由于模数很小,所以可以从这里下手。打一个表之后可以发现,每个数都将在进行几次 mod 2018 意义下的平方运算之后进入一个长度很小的循环节,且所有循环节长度的 lcm 为 6。而且可以发现,每个数字经过不超过 5 次运算都可以进入循环节,所以在某个数...原创 2018-08-06 09:41:41 · 261 阅读 · 0 评论 -
【HDU 6393】暑期多校day7 Traffic Network in Numazu (基环树、树链剖分)
题目大意给出一棵基环树,有两种操作:1)修改一条边的边权,2)查询一个点到另一个点的最小距离。解题思路基环树其实可以形象的理解为一个长了好几棵树的环,那么,取两个点共有以下两种情况: 1. 两点在同一棵树上; 2. 两点在不同根的两棵树上;对于在同一棵树上的两个点,问题就是简单的树链剖分;对于在不同树上的两个点,距离可以转化为“两结点到根节点的距离+环上两个根节点的距...原创 2018-08-14 18:03:47 · 230 阅读 · 0 评论 -
【Nowcoder】暑期多校day6 Team Rocket (线段树 细节)
题目大意有 n 条线段,分别对 m 个点进行操作,每次操作时删除包括这个点的所有线段,每个线段至多被删除一次。问每个操作删除的线段数,以及每个线段被消灭的最早一次操作。解题思路考虑把每个区间当做平⾯上的⼀个点 (l, r),每次操作相当于是删去所有的满⾜ (l <= x <= r) 的点,相当于是把横坐标 <= x 的所有纵坐标 >= x 的点删去。离散...原创 2018-08-08 10:18:06 · 178 阅读 · 0 评论