![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 80
zuihoudebingwen
这个作者很懒,什么都没留下…
展开
-
归并树与划分树
POJ 2104 寻找区间第K数划分树,时间复杂度O(MlogN),归并树,时间复杂度O(Mlog^3N)。归并树好慢啊!先把划分树弄明白吧!。。。orz原创 2012-09-27 19:23:51 · 562 阅读 · 0 评论 -
spoj GSS系列
You are given a sequence A of N (N modify the i-th element in the sequence or for given x y print max{Ai + Ai+1 + .. + Aj | xInputThe first line of input contains an integer N. The following原创 2012-09-25 20:17:28 · 628 阅读 · 0 评论 -
查询某区间内最靠右的不超过k的数
为了回答这个询问, 我们需要一棵存储RMQ的线段树。 现在考虑, 把询问的区间分成了O(logn)个节点所表示的区间之后,通过比较区间最小值与k的大小关系,立即可以判定某区间内是否有满足条件的数。在这些区间内选择一个最靠右的,然后如果它的右儿子存在满足条件的数,则在右儿子中查找,否则在左儿子中查找。时间复杂度当然是O(log n)。实际实现也不用像上面说的一样分为两步,一步就够了原创 2012-09-25 11:28:27 · 1578 阅读 · 0 评论 -
成段更新Problem C(1003)
Problem C(1003)Happy Children’s DayStandard Input / Standard OutputChildren's Day is coming. In this day, children will get a lot of candies. In MAX city, people develop an automatic candy原创 2012-09-25 09:10:16 · 785 阅读 · 0 评论 -
poj 1436 成段更新(区间覆盖)
Horizontally Visible SegmentsTime Limit: 5000MS Memory Limit: 65536KTotal Submissions: 2578 Accepted: 965DescriptionThere is a number of disjoint vertical lin原创 2012-09-29 11:09:56 · 982 阅读 · 0 评论 -
hdu 4417 Super Mario 划分树(线段树)
看了大牛的思路http://blog.csdn.net/fp_hzq/article/details/8010322#comments每次询问区间内小于等于k的数有几个,很明显符合划分树的范畴,然后只要改改query函数,没次对于大于中间的数就加上划分到左边的个数,否则不管。注意了:就是可能区间会划分到空,还有可能只有一个元素,而且等于查找的数,要特殊处理下#include#includ原创 2012-09-27 21:24:18 · 578 阅读 · 0 评论 -
spoj GSS1
SPOJ GSS系列题You are given a sequence A[1], A[2], ..., A[N] . ( |A[i]| ≤ 15007 , 1 ≤ N ≤ 50000 ). A query is defined as follows: Query(x,y) = Max { a[i]+a[i+1]+...+a[j] ; x ≤ i ≤ j ≤ y }. Give原创 2012-09-25 20:19:35 · 1733 阅读 · 0 评论 -
poj 2104 归并树(线段树)
* 题意:给定一个序列key[1..n]和m个询问{s,t,rank}(1 分析:由于2761和这题差不多,且数据量是这题的10倍,所以我一开始就把2761的SBT代码交上去,结果竟然是TLE,估计是栽在了"Case Time Limit: 2000MS"上面了。最终还是用了别人的思路,由此接触到一种很巧妙的结构:归并树归并树可以用简单的一句话概括:利用类似线段树的树型结构记录合并转载 2012-09-27 19:03:36 · 1232 阅读 · 1 评论 -
询问区间是否同色
下面再看一个例子:有一条直线,每次把其中一段染成某种颜色,要求输出最终的染色情况。首先,可以把所有操作所涉及到的坐标离散化,从而可以用整数区间来表示直线上的线段。然后,由于现在的问题不涉及区间的查询,只涉及区间的修改,我们不需要考虑“如何合并两条线段的信息”这一问题,而只需考虑“如何在树上作标记以快速维护每个位置的颜色”。不难发现,这个题目中,每个节点不需要记录前面意义上的“值原创 2012-09-25 10:30:59 · 679 阅读 · 0 评论