数据结构__线段树|树状数组
文章平均质量分 84
shuangde800
这个作者很懒,什么都没留下…
展开
-
HDU 1754 I Hate It(线段树,区间最大值)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754分析与总结:线段树求区间最大值,好像也没什么可讲的。代码:#include#include#include#define lson(x) (x<<1)#define rson(x) (lson(x)|1)using namespace std;原创 2012-11-07 20:45:08 · 874 阅读 · 0 评论 -
CF 6E Exposition(RMQ | 线段树,二分)
链接:http://codeforces.com/problemset/problem/6/E题目大意:给n个数,然后找出最长的一段子序列(不需要连续),使得这段子序列中的最大值与最小值之差不超过k。找出有几个子序列满足,并且输出他们的开始位置与结束位置。分析与总结:枚举所有子序列的起点位置,然后再二分终点位置,使得起点与终点的距离最大,并且这个区间内的最大原创 2012-11-16 14:33:31 · 1258 阅读 · 0 评论 -
poj 2528 Mayor's posters(线段树,离散化,成段更新染色)
链接:http://poj.org/problem?id=2528题目大意:在长度为10000000的墙上贴海报,海报的高度和墙的高度一样,不同的海报覆盖在不同的区域。如果有重叠位置,则后面贴的海报会把之前贴的海报覆盖掉。问最终有几张海报可以看到?分析与总结:又一道成段更新的线段树染色问题来喽。1. 用map来离散化,结果TLE了。。。然原创 2012-11-15 15:06:16 · 1063 阅读 · 0 评论 -
HDU 1698 Just a Hook(线段树,成段更新)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698分析与总结:我的第一道线段树成段更新题... 看刘汝佳大白书+傻崽的代码学习的代码:#include#include#include#include#define mid ((left+right)>>1)#define lson rt<<1,left原创 2012-11-14 18:45:36 · 708 阅读 · 0 评论 -
poj 2352 Stars(树状数组 or 线段树)
链接:http://poj.org/problem?id=2352题目大意:在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。分析与总结:因为输入是按照按照y递增,如果y相同则x递增的顺序给出的, 所以,对于第i颗星星,它的level就原创 2012-11-12 17:21:34 · 8264 阅读 · 2 评论 -
HDU 1556 Color the ball (线段树|树状数组,区间更新)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556题目:Problem DescriptionN个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数a b(a Input每个测试实例第一行为一个整数N,(N 当N = 0,输入结束。 Ou原创 2012-11-14 18:53:04 · 872 阅读 · 0 评论 -
zoj 1610 Count the Colors(线段树,成段更新染色)
链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1610题目大意:在一条长度为8000的线段上染色,每次把区间[a,b]染成c颜色。显然,后面染上去的颜色会覆盖掉之前的颜色。求染完之后,每个颜色在线段上有多少个间断的区间。分析与总结:这题是成段更新lazy标记的题,并原创 2012-11-15 12:54:09 · 6982 阅读 · 5 评论 -
poj 3468 A Simple Problem with Integers(线段树|成段更新,区间查询)
链接:http://poj.org/problem?id=3468题目大意:有N个整数:A1, A2, ... , AN。 然后对这个整数序列有两种操作:1. C a b c : 把Aa, Aa+1, ... , Ab所有元素都加上c2. Q a b : 查询Aa, Aa+1, ... , Ab之和。分析与总结:经典线段树题目原创 2012-11-14 20:58:43 · 835 阅读 · 0 评论 -
poj 2299 Ultra-QuickSort(线段树,离散化求逆序数)
题目链接:http://poj.org/problem?id=2299分析与总结:一看到这题的第一反应就觉得是求逆序数 = =|先用归并排序求逆序数AC之,这应该是速度最快的一种求逆序数方法,391MS然后用树状数组做,因为每个元素范围0 ≤ a[i] ≤ 999,999,999, 太大了,所以我用map离散化了,结果超时了...后来发现,其实不需要用map来映射原创 2012-11-13 22:00:33 · 1382 阅读 · 0 评论 -
poj 2481 Cows(树状数组 | 线段树)
链接:http://poj.org/problem?id=2481题目大意:给n个区间,对于两个区间【Si,Ei】和【Sj, Ej】,如果Si Ej - Sj, 就说区间i比区间j“强大”。也就是区间i要严格包含区间j。求每个区间i,有多少个区间比i“强大”,并输出。分析与总结:昨天的CF的B题Big Segment也是和这题的区间包含的处理相似,原创 2012-11-13 00:02:26 · 1009 阅读 · 0 评论 -
poj 3067 Japan(线段树 | 树状数组)
链接:http://poj.org/problem?id=3067题目大意:在Japan的东西两边都有海岸线,且都是南北方向的。两边分别有n,m个城市,他们的编号分别都为1....n, 1....m.要在东西海岸的城市间建立一些高速路,求所有的交点有多少个(一个交点保证只有两条路穿过)。分析与总结:这题并不难想,把所有路按照以东海岸变为起点u,西海岸为终原创 2012-11-13 01:24:01 · 1686 阅读 · 0 评论 -
HDU 1166 敌兵布阵(线段树,区间求和)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166分析与总结:我的第一道线段树,留做纪念。。学习过程中,主要是遇到了一个问题:在输入初始化线段树时,有的是直接在build函数里面输入,有的是在外面先全部输入到一个数组里面,然后才build,代码如下:1. int build(int cur, int le原创 2012-11-07 20:25:59 · 1342 阅读 · 0 评论 -
HDU 1394 Minimum Inversion Number(线段树,逆序数)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题目大意:给一个n个数的序列a1, a2, ..., an ,这些数的范围是0~n-1, 可以把前面m个数移动到后面去,形成新序列:a1, a2, ..., an-1, an (where m = 0 - the initial seqence)a2, a3, ...,原创 2012-11-08 12:08:30 · 1214 阅读 · 0 评论 -
HDU 2795 Billboard(线段树)
链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题目大意:给一个h*w的公告牌,h是高度,w是宽度,一个单位高度1为一行,然后会有一些公告贴上去,公告是1*wi大小的长纸条,优先贴在最上面并且最左边的位置,如果没有空间贴得下,就输出-1,可以的话,就输出所贴的位置(第几行)。分析与总结:叶节点【x,x】表示b原创 2012-11-08 13:56:23 · 948 阅读 · 0 评论 -
Ural 1019 A Line painting(线段树,成段更新离散化)
链接:http://acm.timus.ru/problem.aspx?space=1&num=1019题目大意:一条线段上有点0~10^9. 初始时全部都是白色。 然后会有一些操作:把【a b】区间染成白色,或者把【a,b】区间染成黑色。最后,求最长的一段白色。分析与总结:线段树成段更新染色。当然,由于数据量小,也可以直接暴力。1. 在离散化问题上原创 2012-11-16 17:08:26 · 1184 阅读 · 0 评论