
线段树
文章平均质量分 85
fcbruce
Veni,Vidi,Vici
展开
-
HDU 1754 I Hate It (线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=1754I Hate ItTime Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 31500 Accepted Submissio原创 2014-02-28 23:01:12 · 837 阅读 · 1 评论 -
HDU 4419 Colourful Rectangle (线段树扫描线)
题意:给出R,G,B三种颜色的矩形的数据,求最后7种颜色(R,G,B,RG,RB,GB,RGB)的面积是多少?分析:显然的线段树扫描线,可以说这题非常考验对线段树扫描线的理解,如果只会用模板,恐怕很难做出来。R,G,B三种颜色最后会产生7种颜色(无色不算),可以预见本题对编码质量要求相当之高。update()操作和一般的线段树扫描线并无太大的不同,本题的精髓在于query()!一般的简单扫描线甚至不用写query,因为根结点维护的区间覆盖长度就是我们所需要的。但是本题需要从复杂的信息中分出7种信原创 2014-09-24 02:03:27 · 1964 阅读 · 1 评论 -
HDU 3255 Farming(线段树求体积并)
你家种一年地的收成暴int!你当是《日人民报》啊!题意:雇佣贫农种地(所以是地主喽),每个农民带一种种子,播种在他管理矩形区域,每个单位面积种一粒,区域可能会重合,那么收成高的那粒会将其他的覆盖掉,求最终收成。分析:一开始想的是二维线段树set,但是看到面积有sqr(10^6),即使离散化也有sqr(3*10^4),后来想到加权的线段树扫描线求面积并,但是发现覆盖种子不好维护,后来看到别人题解标题:线段树求体积并。把价格看成高度,那么每粒种子的高度区间就可以看成[0,price),想像一下,这些"原创 2014-08-27 16:09:56 · 1364 阅读 · 1 评论 -
HDU 4027 Can you answer these queries? (线段树)
题意:给出一排敌军的血量,每次攻击都能将范围内的敌军血量变为原来血量的算术平方根(下取整),并询问范围内敌军的血量和。分析:显然的线段树,但是似乎不太好设计lazy标记啊,我们想一想算术平方根,sqrt(1)=1,且64位整数范围内最多6次就变到1了,那么只要区间内的数都为1,我就不用更新这个区间了,所以每次更新都更新到叶子结点,维护区间和就行了。数据里没有0,不过X>Y这种trick有意思吗?原创 2014-08-27 19:26:16 · 1575 阅读 · 1 评论 -
HDU 4819 Mosaic(二维线段树)
题意:给出一个图片,分成N×N个单元格,有M次操作,每次操作将(x,y)的值变为以(x,y) 为中心L(L为奇数)为边长的区域内的最小值和最大值的均值(floor((maximum+minimum)/2)),并输出该值。分析:明显的二维线段树的单点更新和区间查询,维护最值。更新肯定是先在二维内找到叶子节点的那棵线段树,然后再在这棵树上更新,这部分很简单,就想成一维的写。但是这毕竟是二维线段树,二维的部分也需要维护,当然这部分比较麻烦,我们先想一想一维的:一维的节点维护的是值,我们只要根据它的左右儿子原创 2014-08-15 10:39:09 · 1506 阅读 · 0 评论 -
POJ 2482 Stars in Your Window(线段树扫描线)
题意:背景真是令人感动,我都看得哭了......前面的自己看吧。给出星星的坐标和亮度,给定一个矩形(长/宽),求框住的星星亮度和的最大值,恰好在边上的不算。分析:一个月前在上海邀请赛就有这样的题,当时我线段树只会成段更新,所以那道题目也没碰...我们这样想,每个星星能影响的范围就是给定矩形的面积,为方便起见,不妨设星星的位置为矩形的左下角。那么在这个范围内的点全部加上它的亮度,最终我们就是求该平面内的最大值。这样的话就要用到二维线段树...可是有10k颗星星...这要开多大的数组啊.....原创 2014-08-22 18:57:00 · 2558 阅读 · 0 评论 -
HDU 4973 A simple simulation problem.(线段树)
题意:初始给出1-n的序列,有两个操作:D l r,将[l,r]区间的每个数都复制一个;Q l r,询问[l,r]区间内最多的相同数字的个数。分析:显然的线段树,但是这个序列的长度会因为D操作变化,即线段长度变化。通过观察发现这个序列永远是sort过的,那么我们只要维护每个数的数量,操作前找到l和r的位置,然后再单点更新、成段更新,成段询问,线段树的综合应用。原创 2014-08-24 11:52:07 · 1356 阅读 · 0 评论 -
ZOJ 1859 Matrix Searching(二维线段树)
题意:给出一个n*n的矩阵,有m次询问,求每次询问子矩阵中的最小值。分析:显然二维线段树随便乱搞搞就行了,线段树维护区域内的最小值。注意二维上的"pushup()"的写法,实际上也是要维护一棵线段树。原创 2014-08-24 13:29:00 · 1203 阅读 · 1 评论 -
POJ 3225 Help with Intervals (线段树,区间更新)
http://poj.org/problem?id=3225Help with IntervalsTime Limit: 6000MS Memory Limit: 131072KTotal Submissions: 9859 Accepted: 2344Case Time Limit: 2000MS原创 2014-07-09 21:05:29 · 834 阅读 · 0 评论 -
HDU 1542 Atlantis(线段树扫描线)
http://acm.hdu.edu.cn/showproblem.php?pid=1542AtlantisTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6788 Accepted Submission(s):原创 2014-08-03 14:53:02 · 1238 阅读 · 0 评论 -
POJ 2155 Matrix (二维线段树)
http://poj.org/problem?id=2155MatrixTime Limit: 3000MS Memory Limit: 65536KTotal Submissions: 18143 Accepted: 6813DescriptionGiven an N*N matrix A,原创 2014-08-04 10:43:11 · 1254 阅读 · 0 评论 -
POJ 2886 Who Gets the Most Candies? (线段树,单点更新)
http://poj.org/problem?id=2886原创 2014-07-09 20:40:46 · 679 阅读 · 0 评论 -
POJ 2828 Buy Tickets (线段树,单点更新)
http://poj.org/problem?id=2828原创 2014-07-09 20:13:24 · 699 阅读 · 0 评论 -
HDU 4417 Super Mario(离线线段树)
http://acm.hdu.edu.cn/showproblem.php?pid=4417http://acm.hdu.edu.cn/showproblem.php?pid=4417原创 2014-07-01 22:06:03 · 754 阅读 · 0 评论 -
HDU 2795 Billboard(线段树)
BillboardTime Limit: 20000/8000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 9522 Accepted Submission(s): 4240Problem DescriptionAt the entrance原创 2014-07-01 21:09:02 · 723 阅读 · 0 评论 -
ZOJ 1484 Minimum Inversion Number(线段树,数论)
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1484原创 2014-07-01 21:28:33 · 751 阅读 · 0 评论 -
HDU 2871 Memory Control (线段树,区间合并)
http://acm.hdu.edu.cn/showproblem.php?pid=2871Memory ControlTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 4418 Accepted Submissio原创 2014-07-22 08:21:07 · 1328 阅读 · 0 评论 -
HDU 3397 Sequence operation (线段树,成段更新,区间合并)
http://acm.hdu.edu.cn/showproblem.php?pid=3397Sequence operationTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5801 Accepted Subm原创 2014-07-21 09:42:09 · 1335 阅读 · 0 评论 -
SPOJ 11840. Sum of Squares with Segment Tree (线段树,区间更新)
题意:有三种操作:将区间中的所有数置为x;将区间中的所有数加上x;求区间内所有数的平方和。分析:先考虑如果不需要求平方和,只是求和,我们需要维护这些数据:addv-区间内的数共同加上的值;setv-区间内的数都置为的值(setv=INF表示不设置);sumv-区间内的数加上addv之前的值。但这题求的是平方和,似乎不是很好维护。如果只是set操作,还是很好维护的,那么难点就在于add操作了。考虑如下等式:(x+v)^2=x^2+2xv+v^2,x是add操作之前的数,v是add的数,这是一个数的情况原创 2014-10-03 17:14:15 · 2067 阅读 · 0 评论