线段树题目总结

一、单点更新

1.hdu1166 敌兵布阵:有N个兵营,每个兵营都给出了人数ai(下标从1开始),有四种命令,(1)”Addij",表示第i个营地增加j人。(2)“Sub i j”,表示第i个营地减少j人。(3)“Query ij",查询第i个营地到第j个营地的总人数。(4)”End“,表示命令结束。解题报告Here

2.hdu1754 I Hate It:给你N个数,M个操作,操作分两类。(1)"QAB“,查询区间[A,B]内的最大值。(2)"UAB",将第A个数的值改成B。解题报告Here

3.hdu1394Minimum Inversion Number:给你N个数,要求统计它的所有形式的逆序对的最小值。它的所有形式的意思是,不断将数组开头的第一个数放到数组的最后面。解题报告Here

4.hdu2795 Billboard:有一块板,规格为h*w,然后有n张海报,每张海报的规格为1*wi,选择贴海报的位置是:尽量高,同一高度,选择尽量靠左的地方。要求输出每张海报的高度位置。解题报告Here

5.poj2828 BuyTickets:有N个人排队,每一个人都有一个val来对应,每一个后来人都会插入当前队伍的某一个位置pos。要求把队伍最后的状态输出。解题报告Here

6.poj2886 Who Getsthe Most Candies?: N个小孩围成一圈,他们被顺时针编号为 1 到 N。每个小孩手中有一个卡片,上面有一个非 0 的数字,游戏从第 K 个小孩开始,他告诉其他小孩他卡片上的数字并离开这个圈,他卡片上的数字 A 表明了下一个离开的小孩,如果 A 是大于 0 的,则下个离开的是左手边第 A
个,如果是小于 0 的,则是右手边的第 A 个小孩。游戏将直到所有小孩都离开,在游戏中,第 p 个离开的小孩将得到 F(p) 个糖果,F(p) 是 p 的约数的个数,问谁将得到最多的糖果。输出最幸运的小孩的名字和他可以得到的糖果。解题报告Here

7.hdu4288 Coder & CF85-DSum of Medians:有三种类型的操作,(1)."add x",表示往集合里添加数x。(2).“del
x”表示将集合中数x删除。(3).“sum”求出从小到大排列的集合中下标模5为3的数的和。集合中的数都是唯一的。解题报告Here

8.CodeforcesBeta Round #19 D. Points:有三种操作“add x y”往平面上添加(x,y)这个点,"remove x y",将平面上已经存在的点(x,y)删除,“find x y”找出平面上坐标严格大于(x,y)的点,如果有多个点找x最小的,再找y最小的。解题报告Here

9.poj2481 Cows:有N头牛,每只牛有一个测试值[S,E],如果对于牛i和牛j来说,它们的测验值满足下面的条件则证明牛i比牛j强壮:Si <=Sjand Ej <= Ei and Ei - Si > Ej - Sj。现在已知每一头牛的测验值,要求输出每头牛有几头牛比其强壮。解题报告Here

10.hdu3950 Parking Log:有T组测试数据,每组数据的N和Q分别表示停车场有N个位置(下标从1开始),Q个操作。操作有两种(1)"A M L R",表示这个车队有M辆车,如果前面的空位,要求与前面的车的距离不超过L,如果后面有车,要求与后面的车的距离不超过R,如果前面或后面没有车,条件L,R的限制忽略,如果有满足条件的位置输出起点的下标,如果有多个满足条件的位置输出下标最小的一个,如果没有满足条件的位置,输出-1。(2)"BK",表示从左到右数第k个车队离开。解题报告Here

11.hdu4521 小明系列问题——小明序列: 有多组测试数据,每组数据的n和d表示,有n个数,求间距大于d的最长上升序列。解题报告Here

12. CodeforcesBeta Round #99 (Div. 1) C Mushroom Gnomes - 2:有n棵树,m个蘑菇,每棵树有坐标a,高度h,向左边倒的概率,向右的概率(概率用0-100表示),向左倒范围[x-h,x)内的蘑菇被破坏,向右倒范围(x,x+h]范围内的蘑菇被破坏。每个蘑菇有坐标b,及它的魔力值z。解题报告Here

13.hdu 4605 Magic Ball Game:一个权值为X球从根节点开始下落,每落到一个节点的时候,1.如果X=W[i],或者没有儿子节点了,球停止下落。2.如果X<W[i],球各有1/2的概率落到左右儿子节点。3.如果X>W[i],球有1/8的概率落到左儿子,有7/8的概率落到右儿子。问球落到点v的概率是多少(概率用7^x/2^y表示,即输出x和y就可以)。解题报告Here

14.URAL 1989 Subpalindromes:给你长度为N的字符串,有M个操作,操作有两种类型(1)“change i a”,表示将第i个字符变成a,(2)“palindrome? j k”,询问[j,k]的字符串是否构成回文串。解题报告Here

15.hdu 4777 Rabbit Kingdom:给N个数,有M个查询,问区间[L,R]之间有多少个数与这个区间内的其他数都互质。解题报告Here

二、成段更新

简单的说明:成段更新需要用到延迟标记(或者说懒惰标记),简单来说就是每次更新的时候不要更新到底,用延迟标记使得更新延迟到下次需要更新or询问到的时候。延迟标记的意思是:这个区间的左右儿子都需要被更新,但是当前区间已经更新了。

1.hdu1698 Just a Hook:给你T组数据,N个数(初始时每个数的值为1),M个操作,每个操作把区间[a,b]里的数更新为c,问最后这N个数的和是多少。解题报告Here

2.poj3468 A SimpleProblem with Integers:给你N个数,然后有M个操作。有两种类型的操作,(1)“Ca b c”,表示将区间[a,b]里的数加上c。(2)“Q a b”,表示查询区间[a,b]的数的和。解题报告Here

3.poj2528 Mayor’sposters:有t组测试数据,有n张海报,海报按题目给出的顺序覆盖,问最后能看到几张海报。解题报告Here

4.poj1436Horizontally Visible Segments:(题意没懂。。)

5.poj2991 Crane:有N根杆子,前后两根杆子通过一个节点连接,每个节点可以旋转一定的角度,每次给你一个操作(s,a)表示将第s与s+1之间的角度修改为a度,并且每次操作之后都需要求出第N个节点的位置。解题报告Here

6.uestc1425 Another LCIS:有T(t<10)组数据,给你N个数,M个操作(n和m都小于100000)。操作有两种类型,(1)“q a b”,查询区间[a,b]里的最长连续上升序列的长度。(2)“a l r v”,将区间[l,r]里的数全部增加v。解题报告Here

7.uestc1546 Bracket Sequence:给你有N个字符的由‘(‘或‘)‘组成的括号序列,有三种操作(1)"set l r c",表示将区间[l,r]里的所有元素改变为c,c是‘(‘或‘)‘的其中一种。(2)"reverse l r",表示将区间[l,r]里的‘(‘与‘)‘对调。(3)"query
l r",表示查询区间[l,r]是否为一个合法的括号序列。解题报告Here

8.CodeforcesRound #136 (Div. 2) D. Little Elephant andArray:给你N个数M个查询,问在每一个查询区间[l,r]范围内有多少个值为valu的数出现次数也为valu。解题报告Here。(这道题,成段更新查询点和单点更新查询区间都可以)

9.Uva 12436 RipVan Winkle‘s Code:对于长度为250000的区间,给了你四种操作:操作A,从st到ed这段区间内的数,分别加上1,2,...,st-ed+1。操作B,从st到ed这段区间内的数,分别加上,st-ed+1,st-ed,...,1。操作C,将st到ed这段区间内的数赋值成x。操作S,查询st到ed的这段区间内的数的总和。解题报告Here

10. CodeforcesRound #169 (Div. 2) E.Little Girl and Problemon Trees:一棵树有n个节点,但是除了根节点1外,其他节点都的出度和入度加起来就只有2(就是棵树是由几条链的第一个节点粘在一起的),现在有两种操作(1)"0 v x d",在距离v节点距离d以内的所有节点的权值都加上1,(2)"1
v",查询节点v上的权值。解题报告Here

11.CodeforcesBeta Round #35 (Div. 2) E. Parade:给你n个建筑的楼顶的高度,以及楼顶的左坐标l,右坐标r(可以看成是线段),问整个建筑的轮廓的转折点。解题报告Here

12.Zoj3299 Fall the Brick:有n排板砖,m个木板,边界的l和r的n列板砖从天上掉下来,然后有m个边界的a,b的高度为h的木板去接那些板砖,一排板砖中的部分板砖如果掉到木板上就停止下落,剩下的继续下落,问最后每块木板上有多少块板砖。解题报告Here

13.fzu2105 Digits Count:给你N个数,有四种操作。(1)"ANDopnL R",表示对区间[L,R]内的数全部与opn进行且(&)操作。(2)"OR opn L R",表示对区间[L,R]内的数全部与opn进行或(|)操作。(3)"XOR opn L R",表示对区间[L,R]内的数全部与opn进行异或(^)操作。(4)"SUMopnL
R",求出区间[L,R]的数的和。解题报告Here

14.hdu 4533 威威猫系列故事——晒被子:给你N个矩形,每个矩形给出左下角坐标,右上角坐标,有M个询问,每个询问给出一个时间t,问(0,0),(t,t)的范围内矩形的面积和(重叠的也算)。解题报告Here

15.URAL 1855 Trade Guilds of Erathia:有N个城市,M个操作。城市形成一条链,下标分别从1到N,相邻城市有一条道路相连,初始通过每条道路的费用为0。有两种类型的操作,(1)"change a b d",表示从城市a到城市b之间的每条道路的费用改变d(如果d大于0,增加,反之减少)。(2)"establish
a b",表示查询在城市a到城市b之间任意选两个城市作为道路的起点和终点,问通过这些道路的平均费用。解题报告Here

16.hdu 4578 Transformation:给你一个数组,初始值为零,有四种操作:(1)"1 x y c",代表 把区间 [x,y] 上的值全部加c。(2)"2 x y c",代表 把区间 [x,y] 上的值全部乘以c。(3)"3 x y c" 代表 把区间 [x,y]上的值全部赋值为c。(4)"4
x y p" 代表 求区间 [x,y] 上值的p次方和1<=p<=3。解题报告Here

17.hdu 4455 Substrings:给定一个整数串,有Q组询问,问这个串中长度为W的子串中不同的数字之和为多少。解题报告Here

18.hdu 4614 Vases and Flowers:给定一个区间[0,N-1],初始时每个位置上的数字都是0,有两种操作,1.在位置A开始寻找F(如果没有这么多,则有多少个就找多少个)个数值为0的位置,把位置上的数修改为1,并返回第一个和最后一个修改的位置。2.查询区间[A,B]内1的个数,并把区间[A,B]每个位置上的数修改为0。解题报告Here

19.hdu 4747 Mex:给你N个数,枚举所有的L和R,问由区间[L,R]之间的数构成的集合里,哪一个数字没有出现,如果有多个,找出最早的一个,设其为x,求所以x的和。解题报告Here

20.zoj 3724 Delivery:N个点,对于每个点i,都有一条连向i+1的有向边,另外有M条其他的有向边,有Q个询问(U,V)求U到V的最短路。解题报告Here

21.cf343D Water Tree:一棵树有N个节点,有三种操作(1)“1 v",表示将以点v为根节点的子树全部赋值为1,(2)"2 v",表示将点v以及点v的所有祖先节点全部赋值为0,(3)"3 v",表示查询点v的值。解题报告Here。解题报告Here

22.URAL 1977 Energy Wall:有N(N<10^9)个点,P(P<10^5)个操作,每一秒过后,所以的数都会加上一个值T,每个操作前都有操作的时间,初始的时间是0,操作有两种类型,(1)"save l r",表示求区间[L,R]之间的所以数的和,并加到tot里,然后把[L,R]清空为零,(2)"enforce
i d",表示点i-d+1和点i+d-1加上值X,点i-d+2和点i+d-2加上值2*X……并且,最后所有数加上的X的和等于tot,这个操作之后,tot清零。解题报告Here

三、区间合并

区间合并是在线段树查询的时候,对当前区间的左右儿子进行合并。

1.poj3667 Hotel:有N个房间,M次操作。有两种操作(1)"1a",表示找到连续的长度为a的空房间,如果有多解,优先左边的,即表示入住。(2)"2 b len",把起点为b长度的len的房间清空,即退房。解题报告Here

2.hdu3308 LCIS:给你N个整数,有两种操作,(1)"U A B",表示把第A个数变成B,"QAB",表示查询区间[A,B]的最长连续上升序列。解题报告Here

3.hdu3397 Sequence operation:有N个为0或为1的数,有M个操作,操作有5种类型。(1)“0 a b”,表示将区间[a,b]范围内的数全部置0。(2)“1 a b”,表示将区间[a,b]内的数全部置1。(3)"2 a b",表示将区间[a,b]内的数0变成1,1变成0。(4)"3ab",表示查询[a,b]范围内1的数。(5)"4
a b",表示查询[a,b]范围内最长的连续的1。解题报告Here

4.hdu2871 Memory Control:给N个单位内存(编号从1开始),有4种操作,(1)"Reset",表示把所有的内存清空,然后输出"Reset Now"。(2)"New x",表示申请一块长度为x的内存块(如多解,左边优先),然后输出"New at A",A表示该内存块的起点。(3)"Free
x",表示把包含第x块单位内存的内存块清除,然后输出"Free from A toB",A和B分别表示该内存块的起点和终点(4)"Get x",表示返回第x块内存块的起始内存单位编号,然后输出 "Get at A"。解题报告Here

5.hdu1540 Tunnel Warfare:有N个村子排成一条直线,每个村子都连接了它的左右两个村子(除了最左边和最右边的外),有3种操作,(1)"D x",表示将第x个村子摧毁。(2)"Qx",表示查询与第x个村子直接和间接相连的村子有多少个。(3)"R",表示将最早摧毁的村子复原。解题报告Here

6.CodeforcesBeta Round #43 D. Parking Lot:有一条长度为L的街道,有N个操作,操作有两种,(1)"1 a",表示有一辆长度为a的车开进来想找停车位,停车位必须满足与它前面的车距离至少为b,与后面的车距离至少为f.如果能找到这样的停车位,输出这辆车的起始位置(且这个位置最小),否则输出-1。(2)"2
a",表示第a个事件里进来停车的那辆车开出去了。解题报告Here

四、扫描线

1.hdu1542 Atlantis:给你N个矩形,每个矩形给出左下角的坐标,右上角的坐标。最后以N=0为结束。要你求出矩形并后的面积。解题报告Here

2.hdu1828 Picture &poj 1177 Picture:给你N个矩形,每个矩形给出左下角的坐标,右上角的坐标,要求矩形并后的周长。解题报告Here

3.hdu1255 覆盖的面积:有T组测试数据,每组数据先给一个数字N,接下来的N行里,每行四个浮点数表示矩形的左上角坐标和右下角坐标,要求这些矩形至少覆盖过两次的面积。解题报告Here

4.hdu 3642Get The Treasury:有T给测试数据,每组数据先给一个数字N,接下来的N行里,每行里有6个数字,分别是x1,y1,z1,x2,y2,z2,表示这个长方体x轴方向的范围从x1到x2,y坐标和z坐标类似,求至少有三个长方体相交的体积是多少。解题报告Here

5.poj2482 Stars inYour Window:给你10000以内的星星的坐标和星星的亮度(即分别为x,y,c),要求用W*H的矩形去围住一个区域,使得这个区域内的星星的亮度最大,并且要求矩形边框上的星星不计入内。矩形可以平移,但不能旋转。解题报告Here。(PS:这题的题面好美~)

6.poj2464 BrowniePoints II:在平面直角坐标系中给你N个点,stan和ollie玩一个游戏,首先stan在竖直方向上画一条直线,该直线必须要过其中的某个点,然后ollie在水平方向上画一条直线,该直线的要求是要经过一个stan之前画过的点。这时候平面就被分割成了四块,两个人这时候会有一个得分,stan的得分是平面上第1、3象限内的点的个数,ollie的得分是平面上第2、4象限内的点的个数,在统计的时候在所画线上的点都不计算在内。求最终stan使得自己的最差得分最高,并且输出此时ollie的得分。解题报告Here

7.hdu3255 Farming:有N块农田,每块农田中种一种作物,每种作物都有一个价格,当在同一区域内种植了两种不同的作物时,作物价格大的生存下来,作物价格小的死亡。求最后的所有作物的能买的总钱数。解题报告Here

8.uva 11983 WeirdAdvertisement:给出N个矩形,求被这些矩形覆盖K次以上的区域面积。解题报告Here

9.hdu4052 Adding New Machine:给你W*H大小的矩形,其中有N个地区不能使用(给出了这个地区的两个顶点的坐标即(x1,y1)和(x2,y2)),问能下多少个1*M的矩形。解题报告Here

10.uestc1525 Fruit Ninja:有T组测试数据,每组数据的N,H,W表示有N个炸弹或水果,H和W表示用来“切”水果的板砖的长宽,要求W必须平行于X轴,H必须平行于Y轴。问一板砖下去,最多能拍到多少个水果(要求不能拍到炸弹),在拍到最多水果的前提下,问板砖有多少种拍水果的方案(即如果板砖的四条边上都要水果“牺牲”,那么方案数计一,否则板砖就可移动,那么方案数就是so
many!)。解题报告Here

11.hdu4419 Colourful Rectangle:给你10000个三种颜色的矩形,不同颜色的矩形相互覆盖会形成不同的颜色,问形成的七种颜色的面积是多少。解题报告Here

12.zoj 3521 Fairy Wars:平面上有N个子弹,每个子弹的坐标已知,现在在距离点x0,y0为R的圆内,所以的子弹都会变成冰块L*L,并且在L*L范围内的所有其他子弹也会变成冰块,问,当连锁反应结束时,变成冰块的子弹数有多少。解题报告Here

13.zoj 3525 Disappearance:有三维的空间里有N个点(N<5000),要求用一个长方体LB*LW*LH去包围一些点,使得长方体内的点的权值和最小。解题报告Here

五、其他

1.hdu3954 Level up:有N个英雄,每个英雄的初始等级为1,初始经验为0,有K个等级,QW个操作。接下来一行中有K-1个数值,代表升到等级2,等级3……所要达到的经验。接下来的QW行里,每行是一个操作,操作有两类,(1)"l r e",代表区间[l,r]里的每个英雄将得到e乘以他的等级的经验。(2)"lr",表示查询区间[l,r]里经验最大值。解题报告Here

2.hdu4027 Can you answer these queries?:给你N个数,有M个操作,操作有两类,(1)"0 l r",表示将区间[l,r]里的每个数都开根号。(2)"1 l r",表示查询区间[l,r]里所有数的和。解题报告Here

3.hdu3333Turing Tree & hdu3874Necklace:有T组数据,每给数据有N个数,有Q个查询,每个查询要求区间[l,r]之间数的和,但是出现多次的某个值只能算出现一次。解题报告Here

4.hdu3016 Man Down:有N块木板,每块木板有四个属性,高h(h>0),左边界xl,右边界xr,以及掉落在它上面,获得多少生命值value(可能为负),一个人从最高的木板开始往下跳,初始时生命值为100,问最后掉落到地面能获得的生命值最多为多少(如果生命值为0,那么这个人会死去),如果无法跳到地面,输出-1。解题报告Here

5.hdu3340 Rain in ACStar:天上掉下一些图形(三边、四边、五边形)在数轴上,求数轴上某一段区间落下的图形的面积和。解题报告Here

6.ZOJ3511 Cake Robbery:有一个N凸边形,顺时针编号1到N,沿对角线切了M刀,保证任意两刀之间不相交(除了端点),问在切这M刀的过程中,得到的凸多边形的最大的边数是多少。解题报告Here

7.UESTC1558 Charitable Exchange:star开始有1元的东西,有N种交易,每种交易Vi,Ri,Ti表示用至少Ri的东西去换得Vi的东西,这个过程要求的时候是Ti。问最后得到至少M元的东西,如果能得到花费的最少的时间是多少。解题报告Here

8.spojGSS21557 Canyou answer these queries II:题意:给你N个数,每个数a[i]的范围在[-100000,100000],然后有Q个查询,每个查询问区间[x,y]内最大子区间和为多少,并且重复出现的值只能计算一次(如果是负数,输出0,即可以子区间可以为空)。解题报告Here

9.poj3162 WalkingRace:给你一棵有N个节点的树,树边为权值,要你求出树上每个点到其他点的距离中最大的那个值。对求出的从节点1到节点n最大值,找出最长的一段使得这一段中最大值减最小值的结点小于等于M。解题报告Here

10.hdu4358 Boring counting:给你一棵树,树上的每个节点都有树值,给M个查询,问以每个点u为根的子树下有多少种权值恰好出现k次。解题报告Here

11.hdu4267 A Simple Problem with Integers:给你两个操作,,(1)“1 a b k c”,表示在区间[a,b]内位置满足(i-a)%k=0的数加上c,k的范围在1到10之间。(2)“2 a”,表示查询第a个数。解题报告Here。(解题报告里用树状数组做的)

12.hdu4417 Super Mario:给你N个数,M个查询,对于一个查询问在[a,b]范围内小于c的数有多少个。解题报告Here。(解题报告里用树状数组做的)

13.UVALive4730 Kingdom:在二维坐标平面上,有N个城市,M个操作,操作有两类,(1)(1)"road A B",表示将城市A和城市B通过一条道路连接,如果A和B原来属于不同的城市群,经过这个操作,A和B就在一个城市群里了,保证每条道路不会和其他道路相交(除了端点A和B)。(2)"lineC",表示查询当穿过y=C的直线,有多少个城市群、这几个城市群一共有多少个城市。解题报告Here

14.CodeforcesRound #163 (Div. 2) E. More Queries toArray...:题意:有N个数,M个操作。(1)"= l rk",表示把区间[l,r]的数全部变成k。(2)"? l rk",查询区间[l,r]范围里,式子ai*(i-l+1)^k的和。解题报告Here

15.hdu 4638 Group:给你一个1~N的排列,问区间[L, R] 之间有多少段连续的数。比如区间里有3、1、2、5、6,这五个数,那么就有3、1、2和5、6这两段。解题报告Here

16.hdu 4630 No Pain No Game:给出一个N和1到N的某个排列,询问Q次,每次询问[L,R]区间内任意挑两个数,最大公约数的最大值是多少。解题报告Here

时间: 2024-08-22 20:57:29

线段树题目总结的相关文章

线段树题目汇总

区间合并部分: POJ 3667 Hotel 求某大于等于a的最长区间 #include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #define LEN 50001<<2 using namespace std; struct Line_tree { //分别表示以当前区间为左端点的最长连续空白区间,为右端点的最长连续空白区间,该区间的最长连续空白区

线段树 &amp; 题目

首先说下我写的线段树吧. 我是按照线段树[完全版]那个人的写法来写的,因为网上大多数题解都是按照他的写法来写. 确实比较飘逸,所以就借用了. 节点大小是maxn是4倍,准确来说是大于maxn的2^x次方的最小值的两倍.因为要pushUp的时候会去到一些无用的节点. 就是在叶子节点的时候还pushUp了的话,要去到两个无用的节点,所以是最小值的两倍. lson 和 rson 用宏定义写了.因为是固定的量. 线段树不必保存自身的区间,因为一边传递过去的时候,在函数里就有区间表示,无谓开多些无用的变量

线段树基础

关于线段树的原理学习,可以参看杨弋大牛的论文<线段树>以及刘汝佳老师的<算法竞赛入门经典(训练指南)>,代码风格学习hzwer或者notonlysuccess均可. 一.单点更新 最基础的线段树 题目:codevs1080 链接:http://codevs.cn/problem/1080/ 分析:最简单的线段树,单点更新,区间求和 1 #include<iostream> 2 #include<cstdio> 3 using namespace std; 4

PKU-3468 simple problem with integer 线段树 LL坑点(欢迎讨论)

You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type of operation is to add some given number to each number in a given interval. The other is to ask for the sum of numbers in a given interval.InputThe first

HDU 4893 线段树裸题

Wow! Such Sequence! Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 2512    Accepted Submission(s): 751 Problem Description Recently, Doge got a funny birthday present from his new friend, Pro

洛谷 P2253 好一个一中腰鼓 --线段树

P2253 好一个一中腰鼓 --线段树 题目背景 话说我大一中的运动会就要来了,据本班同学剧透(其实早就知道了),我萌萌的初二年将要表演腰鼓[喷],这个无厘头的题目便由此而来. Ivan乱入:“忽一人大呼:‘好一个安塞腰鼓!’满座寂然,无敢哗者,遂与外人间隔.” 题目描述 设想一下,腰鼓有两面,一面是红色的,一面是白色的.初二的苏大学神想给你这个oier出一道题.假设一共有N(1<=N<=20,000)个同学表演,表演刚开始每一个鼓都是红色面朝向观众,舞蹈老师会发出M(1<=M<=

杭电 HDU ACM 2795 Billboard(线段树伪装版)

Billboard Time Limit: 20000/8000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 14144    Accepted Submission(s): 6058 Problem Description At the entrance to the university, there is a huge rectangular billboard of

HDU - 3308 - LCIS (线段树 - 区间合并)

题目传送:LCIS 线段树,区间合并,一次过啦,没有纠结,这几天过的最愉快的一个题 思路:求最长连续上升子序列,外带单点更新,经典的线段树题目.具体看代码注释 AC代码: #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #include <cmath> #include <queue> #include <stack>

hdu4288 离线处理线段树

http://acm.hdu.edu.cn/showproblem.php?pid=4288 Problem Description In mathematics and computer science, an algorithm describes a set of procedures or instructions that define a procedure. The term has become increasing popular since the advent of che