线段树
文章平均质量分 85
ophunter
不会DP!
展开
-
hdu3954Level up(线段树成段更新)
->题目请戳这里突然传来噩耗,所以期末考试提前一周。。。欲哭无泪。。。题目大意:有n个英雄一字排开,编号1-n,现在有一些怪兽,一波一波的,每次袭击l-r的英雄,当然我们的英雄总能打败怪兽,并获得相应的经验值,获得的经验值= 英雄当前等级*升级因子e,e每次输入给定,经验值累计到一定程度就会升级,总级别k题目分析:线段树。不过这题线段树不是那么容易的,TLE了整个下午。。。首先想到的是原创 2013-06-20 20:40:04 · 967 阅读 · 0 评论 -
hdu4267 A Simple Problem with Integers(多棵线段树)
A Simple Problem with IntegersTime Limit: 5000/1500 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2520 Accepted Submission(s): 814Problem Description原创 2013-07-24 21:34:23 · 1474 阅读 · 1 评论 -
hdu4441 Queue Sequence(线段树+splay)
题目请戳这里题目大意:有对队列的一系列操作,+i表示i入队,-i表示i出队,现在对这些操作进行操作。insert p表示在当前操作序列的第p号位置插入一个操作+i,其中i是当前操作序列中未出现的最小的正整数,p从0开始,i从1开始;同时将-i操作插入某个恰当的位置,保证这个位置尽量靠右,并且当从左往右扫描这个操作序列的时候,扫到-i的时候,当前队首元素为i;remove i表示将操作序原创 2013-08-19 14:37:46 · 1013 阅读 · 0 评论 -
hdu3397 Sequence operation(线段树成段更新)
Sequence operationTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4699 Accepted Submission(s): 1368Problem Descriptionlxhgww原创 2013-08-08 12:45:33 · 1500 阅读 · 4 评论 -
hdu3308 LCIS(简单线段树)
LCISTime Limit: 6000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 2988 Accepted Submission(s): 1307Problem DescriptionGiven n integers.Yo原创 2013-08-08 14:27:14 · 976 阅读 · 0 评论 -
hdu4339 Query(简单线段树)
QueryTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 2059 Accepted Submission(s): 706Problem DescriptionYou are given two s原创 2013-08-08 21:05:11 · 902 阅读 · 0 评论 -
hdu4446 IT Companies(线段树)
IT CompaniesTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 290 Accepted Submission(s): 85Problem DescriptionThere are N IT c原创 2013-08-09 18:06:10 · 1072 阅读 · 0 评论 -
hdu4614 Vases and Flowers(简单线段树 + 二分)
Vases and FlowersTime Limit: 4000/2000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1336 Accepted Submission(s): 532Problem Description Alice i原创 2013-08-10 16:28:37 · 1932 阅读 · 0 评论 -
hdu 4578 Transformation2013杭州邀请赛C(简单线段树)
TransformationTime Limit: 15000/8000 MS (Java/Others) Memory Limit: 65535/65536 K (Java/Others)Total Submission(s): 0 Accepted Submission(s): 0Problem DescriptionYuanfang is puzz原创 2013-08-10 15:18:40 · 2739 阅读 · 3 评论 -
hdu1754 I Hate It(splay或者线段树)
I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 27434 Accepted Submission(s): 10889Problem Description很多学校流行一种比较的习惯。原创 2013-08-12 12:49:07 · 954 阅读 · 0 评论 -
hdu4056Draw a Mess(线段树解法)
题目请戳这里题目大意:给一个n*m的矩形,有9中颜色,4种集合图形,q个操作,每个操作是将矩形中指定位置的某种几何形状的格子染相应的颜色。求最后9种颜色相应的数量。题目分析:第一眼感觉就是线段树,一开始想的是写个二维的线段树,然后就在想怎么更新比较快。发现二维线段树除了更新矩形外对于其他3个图形的更新毫无优势。如果一行一行的更新,太慢了。一直在纠结怎样快速成段更新其他3种几何图像。最后1个原创 2013-09-02 09:44:10 · 1069 阅读 · 2 评论 -
hdu4052Adding New Machine(线段树求矩形面积并)
题目请戳这里题目大意:给一个w*h的矩阵,给n个矩形,n个矩阵互不相交。再给一个1*m的矩形,要求与给定的n个矩形不相交,求能摆放的方案种数。题目分析:w和h很大,n有50000,所以离散化+线段树。因为要摆放的矩形是1*m的,所以这个矩形只有2种姿势:横着or竖着。所以从左向右扫描一遍,求出空地的面积并,从上向下扫描一遍,求剩余面积并相加即可。不过要对之前的n个矩形处理一下:对于第i个矩原创 2013-09-03 22:54:12 · 1194 阅读 · 0 评论 -
poj1389Area of Simple Polygons(线段树+线扫描求矩形面积并)
->题目请戳这里题目大意:略题目分析:简单求矩形面积并,不懂的可以看其他几篇博客。这题就是拿来练一下1Y率和敲代码速度。果然小手一抖,把i和j敲反了卡了一下,BS一下自己。。。详情请见代码:#include #include#include#includeusing namespace std;const int N = 1005;int hash[N + N];st原创 2013-06-19 18:15:23 · 904 阅读 · 0 评论 -
POJ3667Hotel(线段树)
->题目请戳这里->中文题目请戳这里题目大意:n个房间编号1-n,现在有2个操作:操作1,给一个数d,表示要预定d间连续的房间,如果没有输出0,如果有,输出最小的起始房间号。操作2,给一个区间a,b,表示编号a到b的房间清房。题目分析:线段树经典模型。这题并不难,不过要想清楚。我曾以为自己想清楚了,结果WA了一早上。。。主要思路:在线段树每个节点维护3个变量:maxlen表示当原创 2013-06-30 16:23:27 · 1196 阅读 · 0 评论 -
hdu4419Colourful Rectangle(线段树+离散化+扫描线)
->题目请戳这里题目大意:在二维平面内给n个矩形,矩形有3种颜色,不同颜色相交的部分就产生了不同的颜色,一共就有7种颜色。对于每个区域内的颜色与某中颜色覆盖的次数无关,只与覆盖的颜色种类有关,求最后这n个矩形相交产生7种颜色的面积。题目分析:这题和这道hdu1255思路基本是一样的,不过1255求的是重复覆盖2+次面积并,情况简单些,这里3种颜色一交就会产生7种情况,分析就稍微复杂一点点。原创 2013-06-18 14:12:41 · 913 阅读 · 0 评论 -
杭电1255覆盖的面积(线段树+离散化+线扫描)
->题目请戳这里题目大意:中文题,不解释。题目分析:求矩形面积并,线段树搞之。但是这题不是简单求面积并,而是求覆盖2次及以上的面积并。一开始直接写个二维线段树,尽快已经尽量做到节约空间,最后还是爆了,1000个矩形,二维线段树伤不起。。。然后换个思路,换成一维线段树+线扫描,仿照之前写的一个面积并的题目,结果又是各种跪。然后分析了一下原因,因为我一开始所谓的线扫描法简直弱爆了,那就不叫线扫原创 2013-06-17 19:31:25 · 1157 阅读 · 0 评论 -
poj1151&hdu1542Atlantis(线段树+离散化+线扫描 VS 二维线段树)
->>题目戳这里 戳这里也行->_题目大意:二维平面内给n个矩形,求面积并。题目分析:线段树线段树~注意给定的坐标点是浮点数,所以要离散化。这题用线段树2种做法:1。线段树+离散化+线扫描。此法相对简单,对x轴坐标离散化建立一颗线段树,对所以矩形按矩形的相对高度排序,先插相对位置比较低的矩形,这样在y轴方向上可以方便的求出y方向上的并,因为排序后y方向上只要2种情况,后原创 2013-06-09 20:05:29 · 1054 阅读 · 0 评论 -
hdu1540&poj2892Tunnel Warfare(线段树单点更新)
->题目请戳这 和这->题目大意,给n个点表示n个村庄,一开始都是相连的,现在有3种操作:Q x,查询第与第x个村庄相连的村庄个数;D x,摧毁掉第x个村庄;R 恢复刚摧毁的村庄。题目分析:每个点用2个状态表示,0表示被摧毁,1表示存在,因为有恢复操作,并且每次恢复上一个被摧毁的村庄,所以用一个栈存储所有被摧毁的村庄,每次R操作恢复栈顶村庄。这题关键是查询操作,如果查询的村庄x不存在,则原创 2013-06-09 13:17:19 · 949 阅读 · 0 评论 -
poj2528Mayor's posters(线段树+离散化+坑坑坑)
->题目请戳这里这题是个巨坑!!原创 2013-06-08 17:39:50 · 1448 阅读 · 0 评论 -
hdu1264Counting Squares(二维线段树水过)
->题目请戳这里题目大意:一个二维平面内有一些矩形,坐标范围0-100;求覆盖的1*1单位面积的个数,重复覆盖的算1次。题目分析:可以用经典的一维线段树+扫描线求面积并,但此题数据量太小,0-100,而且都是整点,所以二维线段树直接水过。详情请见代码:#include #include#include#includeusing namespace std;const in原创 2013-06-19 23:23:01 · 1069 阅读 · 0 评论 -
CUG@WH 1435Find the minimum(线段树成段更新)
Problem G: Find the minimumTime Limit: 2 Sec Memory Limit: 128 MBSubmit: 60 Solved: 14[Submit][Status][Web Board]DescriptionGiven an integer array of size N, we define two kind of oper原创 2013-07-15 12:03:17 · 1018 阅读 · 0 评论 -
hdu3874Necklace(线段树或者BIT + 离线处理)
->题目请戳这里题目大意:给n个数,求任意区间不相同数字之和。题目分析:n个数是给定的,不会变了,区间也是给定的。由于要求任意区间不重复数字之和,那就和这道super mario非常类似了,我们可以离线处理所有询问。由于要求不重复数字之和,我们把询问区间按右断点排序,这样从左往右扫描数列,如果以前没有出现的数字,直接插入,如果出现了,将这个数字上次出现的位置删去,在当前位置重新插入这个数。原创 2013-07-01 23:52:07 · 1072 阅读 · 0 评论 -
hdu1828Picture(线段树求矩形周长并)
->题目请戳这里题目大意:略题目分析:要求矩形周长并。看到这题觉得和这几天写的矩形面积并差不多,然后就直接敲了个线段树+扫描线,写差不多了才发现和面积并还是有区别的。然后仿照求面积并的方法,在线段树节点里面加各种信息,结果总是不对。重新理一下思路发现,求周长并只需要考虑2种情况:水平的边和竖直的边,水平的边不难求,在每插入一条扫描线的时候结算一下,当前区间被分成了几段,用分成的段数*2*当原创 2013-06-19 16:04:04 · 1518 阅读 · 0 评论 -
hdu4417Super Mario(线段树+离线处理)
->题目请戳这里题目大意:一个长为n的路,每个整点处有高度为h的墙,现在超级玛丽要跳过这些墙去救公主。给m个询问,每个询问包含询问区间a-b以及玛丽的弹跳高度c,求对于每个询问,玛丽能跳过这个区间多少墙。题目分析:简单的说就是求给定区间不大于c的墙的个数。对区间处理很容易想到线段树,但是线段树貌似没有查询区间小于某个数的个数的功能,又像划分树,但是划分树求的是区间第k大值。所以我们换一下思原创 2013-06-08 19:49:29 · 1325 阅读 · 0 评论 -
poj3468A Simple Problem with Integers(线段树成段更新)
->题目请戳这里题目大意:红果果的线段树,给n个数,2种操作,Q a b,查询a到b这个区间和,C a b c,a到b区间每个数加上c。题目分析:线段树维护区间和,要加lazy标记。详情请见代码:#include #include#includeusing namespace std;const int N = 100005;typedef __int64 ll;str原创 2013-06-08 10:02:32 · 936 阅读 · 0 评论 -
hdu4122Alice's mooncake shop(单调队列 | 线段树)
题目请戳这里题目大意:一个月饼店开m个小时(24小时营业),只在整点做月饼,做月饼的能力非常强。现在只需要考虑成本的问题。给m个cost值,cost[i]表示第i个小时做1个月饼的代价。再给n个时间,从2000年1月1日0时开始计算。表示订单的截止时间。当然为了节约成本,可以提前趁成本不高的时候做月饼。但是月饼有保质期,t天,月饼放冰箱保存也需要代价,一天花费s。现在求完成n个订单最小代价原创 2013-09-25 13:02:09 · 1099 阅读 · 0 评论