![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 83
wmn_wmn
这个作者很懒,什么都没留下…
展开
-
POJ 3667&& NYOJ 534 线段树(求满足条件的最左面区间)
这道题目是月赛时的一道题,也是POJ上的一道原题,月赛时想了一个多小时,没写出来。昨天又写了一天,总算写出来了。这道题和一般线段树不一样,需要在线段树中增加几个量。 lsum代表某个节点左面的连续最大区间,rsum代表某个节点右面的连续最大区间,sum代表某个节点的最大连续区间,同样要用到lazy的思想。不同的是,一般线段树只存在向下更新,即根节点向孩子结点更新,对于这道题来说,原创 2012-04-24 08:08:56 · 1086 阅读 · 1 评论 -
POJ 2828 Buy Tickets 線段樹
來源:http://poj.org/problem?id=2828題意:有一些人在排隊買票,但是有些人會插隊。現在給出這些插隊的信息,問最後人的順序。思路:一道線段樹的好題。我們從前向後考慮的話,當第i個人插隊的時候,他插隊到第posi個人的後面,也就是說,此時,他前面已經有了posi個人。因此,我們可以從後向前考慮,這樣,第i個人插隊到第posi個人的後面,說明了他的前方還有posi個空原创 2012-10-22 21:09:46 · 2624 阅读 · 0 评论 -
POJ 2528 && NYOJ 9 离散化+线段树
POJ此题数据巨水,大家可以到NYOJ上提交以下,看看写的程序到底对不对。这题就是线段树,其次要离散化一下,开线段树数组的时候要注意这点。容易RE。 离散化后找应设值的时候用二分查找,因为总数不多,所以用二分来说是比较快的,之后就是线段树的普通操作了,其中用到了lazy思想。ac代码:#include #include #include #include原创 2012-04-19 16:39:29 · 837 阅读 · 0 评论 -
POJ 2777 线段树+lazy思想 + 染色问题
来源:http://poj.org/problem?id=2777题意:有一个区间,最多有30种颜色。有两种操作,一种是对某一个区间段染上某一种颜色,一种是询问该区间有多少种不同的颜色。思路:线段树的好题,线段树 + lazy思想的经典应用。而且和位运算结合到了一起。因为颜色数量很少,而且父结点的颜色正好是两个子结点颜色的按位或,因此可以用位运算。最后1的个数就是不同颜色的个数。ac代原创 2012-04-17 11:29:47 · 4220 阅读 · 1 评论 -
POJ 1823 Hotel 线段树 + lazy标签
来源:http://poj.org/problem?id=1823题意:有一些房间,对这些房间有三种操作,一是一段连续的房间住人,二是一段连续的房间变空,三是询问这些房间中最长的一段连续的房间是多长。思路:明显是线段树的题目,中间用到了lazy思想,好题中的好题啊。挺难的一道题目,需要好好思考。这道题的关键之处在于,用lazy向下更新完之后,父结点的信息还需要根据子结点的信息来改变。也就是原创 2012-10-20 08:16:04 · 5012 阅读 · 0 评论 -
POJ 3468 线段树插线问线区间求和
来源:http://poj.org/problem?id=3468题意:给一些数,有两种操作。一种是某个区间都增加一个数,另一种是查询某段区间的和。 思路: 典型的线段树题目,插线问线,求区间和。注意中间会超int范围。lazy思想的运用。ac代码:#include #include using namespace std;const int N=10001原创 2012-04-20 14:35:41 · 917 阅读 · 0 评论 -
POJ 1389 Area of Simple Polygons 线段树求矩形面积
来源:http://poj.org/problem?id=1389题意:给一些矩形,让求这些矩形的面积。矩形是给出的左下角和右下角的坐标,都是正整数。思路:简单的线段树题目,就是求矩形面积。因为都是整数,而且数据范围不大,因此不需要离散化。代码:#include #include #include #include using namespace std;const i原创 2012-10-17 09:33:15 · 3579 阅读 · 0 评论 -
POJ 1151 Atlantis 离散化 + 扫描线 + 线段树
来源:http://poj.org/problem?id=1151题意:给一些矩形,求这些矩形的面积。思路:线段树 + 扫描线的题目,因为数据 是double,所以要离散化。代码:#include #include #include #include using namespace std;const int N = 110;struct line{ double原创 2012-10-10 14:32:57 · 2798 阅读 · 0 评论 -
POJ 3277 City Horizon 线段树
来源:http://poj.org/problem?id=3277题意:给一些矩形,给出长和高,其中长是用区间的形式给出的,有些区间有重叠,最后求所有矩形的面积。思路:因为矩形的区间范围太大,因此可以离散化,离散化后就是一个线段树的问题了。结点信息包括左端点,右端点,和高度。一般来说,线段树建树有两种方法,一种是区间离散,一种是点离散,以前只写过点离散的,而这道题明显 是区间离散更简单。又原创 2012-10-06 11:04:01 · 3997 阅读 · 0 评论 -
POJ 2823 Sliding Window 线段树水题
来源:http://poj.org/problem?id=2823题意:给一些数,每次可以看k个数。从左向右顺序每次k个数,问每次的最大值 和最小值 是多少。思路:RMQ的问题,用线段树松松水过。代码:#include #include #include using namespace std;const int N = 1000010;struct tree{ in原创 2012-10-04 16:03:53 · 3658 阅读 · 1 评论 -
POJ 2155 二维线段树 书套树
是一道裸的二维线段树题目,二维线段树可以用树套树的方式实现。。。。题目:MatrixTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 11798 Accepted: 4466DescriptionGiven an N*N matrix A原创 2012-04-23 08:32:15 · 3100 阅读 · 2 评论 -
POJ 2352 线段树
题意就是让求在某个点左面的星星的个数。因为y是按升序输入的,所以只需要考虑x即可。此题可以用树状数组做,也可以用线段树做。以前用树状数组做过一次,这次用线段树又做了一下。相比来说,树状数组是比较容易想的,而且也更简单。 用线段树的话,当输入一个点的横坐标x后,考虑位于x左边的点有几个即可。题目:StarsTime Limit: 1000MS Memor原创 2012-04-18 15:55:44 · 1549 阅读 · 0 评论 -
HDU 2795 Billboard 线段树
题意比较简单,就是贴海报,从上往下贴,优先贴上面的,只有上面贴不下的时候,贴下面。 方法:用普通方法的话会超时,虽然数据只有20万,时间为8000ms,但是后台数据必定相当变态,否则不会给这么长时间。这道题还是很容易想到用线段树的,只需要加一个变量value,代表的是该区间的可利用的最大值,在查找的时候更新一下就可以了。题目:BillboardTime Limit: 200原创 2012-05-02 19:52:57 · 1179 阅读 · 0 评论 -
POJ 3264 简单线段树
纠结了一天半的时间,写出来一道线段树+lazy的题目后,再看这道题,当真是水之又水啊,,基本就是道模板题啊。。建树的时候存下来区间内的最大值,最小值,查找的时候,找到最大值,最小值,直接相减就可以了。。题目:Balanced LineupTime Limit: 5000MS Memory Limit: 65536KTotal Submission原创 2012-04-17 14:48:43 · 861 阅读 · 0 评论 -
POJ 1177 Picture 線段樹 + 掃描線 求矩形周長
來源:http://poj.org/problem?id=1177題意:給出一些矩形,求出這些矩形所圍城的周長。思路:明顯是線段樹的題目啊,但是線段樹爛的一扯。。。具體來說,就是一條線段一條線段的來處理。先處理豎着的線段,再處理橫着的線段。處理線段長度的時候和掃描線求面積是一樣的。代碼:#include #include #include #include using n原创 2012-10-24 18:03:29 · 3393 阅读 · 0 评论