随笔分类 - 线段树
摘要:Frogs and mosquitoes 用线段树维护每个点覆盖的最小id, 用multiset维护没有吃的蚊子。
阅读全文
摘要:Souvenirs 我们将询问离线, 我们从左往右加元素, 如果当前的位置为 i ,用一棵线段树保存区间[x, i]的答案, 每次更新完, 遍历R位于 i 的询问更新答案。 我们先考虑最暴力的做法, 我们先找到位于 i 前面第一个 j, a[ j ] > a[ i ], 那么x 属于 [ 1, j
阅读全文
摘要:Interval Cubing 这种数学题谁顶得住啊。 因为 (3 ^ 48) % (mod - 1)为 1 , 所以48个一个循环节, 用线段树直接维护。
阅读全文
摘要:Extending Set of Points 我们能发现, 如果把x轴y轴看成点, 那么答案就是在各个连通块里面的x轴的个数乘以y轴的个数之和。 然后就变成了一个并查集的问题, 但是这个题目里面有撤销的操作, 所以我们要把加入和撤销操作变成 这个点影响(L , R)之间的询问, 然后把它丢到线段树
阅读全文
摘要:Parking Lot 线段树区间合并一下, 求当前要占的位置, 不包括两端点的写起来方便一点。
阅读全文
摘要:vp的时候没码出来。。 我们用set去维护, 每一块区域, 每块区域内的元素与下一个元素的差值刚好为ki,每次加值的时候我们暴力合并, 可以发现我们最多合并O(n)次。 然后写个线段树就没了。
阅读全文
摘要:REQ 把询问离线, 我们从n 到 1遍历过去的时候, 把(1 - 1 / p)乘在最靠近当前位置的地方, 然后区间求乘积就好啦。
阅读全文
摘要:Mushroom Gnomes - 2 感觉没啥东西, 用线段树算算每个被覆盖的概率, 坑点是有很多个在同一个点。
阅读全文
摘要:Bipartite Segments 因为图中只存在奇数长度的环, 所以它是个只有奇数环的仙人掌, 每条边只属于一个环。 那么我们能把所有环给扣出来, 所以我们询问的区间不能包含每个环里的最大值和最小值, 这个东西能用dfs直接扣, 找最大值和最小值能用倍增, 或者直接tarjan扣出来就好。 然后
阅读全文
摘要:Alyona and towers 这个题写起来真的要人命。。。 我们发现一个区间被加上一个d的时候, 内部的结构是不变的, 改变的只是左端点右端点的值, 这样就能区间合并了。 如果用差分的话会简单一些, 就变成了求前一段是负数,后一段是正数的最长段多长。
阅读全文
摘要:Please, another Queries on Array? 利用欧拉函数的计算方法, 用线段树搞一搞就好啦。
阅读全文
摘要:区域安全的check方法就是, 每行都有哨兵或者每列都有哨兵,然后我们用y建线段树, 维护在每个y上的哨兵的x的最值就好啦。
阅读全文
摘要:Lucky Queries 感觉是很简单的区间合并, 但是好像我写的比较麻烦。
阅读全文
摘要:F - Permutation 思路:对于当前的值x, 只需要知道x + k, x - k这两个值是否出现在其左右两侧,又因为每个值只有一个, 所以可以转换成,x+k, x-k在到x所在位置的时候是否都出现,或者都不出现,即出现情况相等,我们可以 用线段树维护hash值的方式来判断所有x+k, x-
阅读全文
摘要:C - Drazil and Park 每个点有两个值Li 和 Bi,求Li + Rj (i < j) 的最大值,这个可以用线段树巧妙的维护。。
阅读全文
摘要:思路:很明显的线段树,随便搞搞lazy标记,维护一下区间最长的1。
阅读全文
摘要:D - Developing Game 思路:我们先枚举左边界,把合法的都扣出来,那么对于这些合法的来说值有v 和 r两维了,把v, r看成线段的两端, 问题就变成了,最多能选多少线段 使得不存在这样两条(l1 r1) (l2 r2) l2 > r1,我们把线段l1 r1 看成二维平面内的点(l1,
阅读全文
摘要:http://codeforces.com/contest/760/problem/E 题目大意:现在对栈有m个操作,但是顺序是乱的,现在每输入一个操作要求你输出当前的栈顶, 注意,已有操作要按它们的时间顺序进行。 思路:线段树好题啊啊,我们把push当成+1, pop当成-1,按操作的位置建立线段
阅读全文
摘要:E - Nastya and King-Shamans 题目大意:有n个数,每一次操作更改一个数,每次操作之后问你是否有一个数等于其前面所有数的和。 思路:好题,想了很久没想出来,看了题解,主要思想就是满足条件的数会成倍增长,如我们知道了 1 - i 里面没有满足条件的数, 那么我们找一个最小的 j
阅读全文
摘要:sb 线段树
阅读全文

浙公网安备 33010602011771号