线段树/树状数组
文章平均质量分 76
gotoac
这个作者很懒,什么都没留下…
展开
-
hdu 4553 约会安排
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4553题目大意: Problem Description 寒假来了,又到了小明和女神们约会的季节。 小明虽为屌丝级码农,但非常活跃,女神们常常在小明网上的大段发言后热情回复“呵呵”,所以,小明的最爱就是和女神们约会。与此同时,也有很多基友找他开黑,由于数量原创 2013-05-25 17:58:24 · 871 阅读 · 0 评论 -
spoj 2713 Can you answer these queries IV
题目链接:https://www.spoj.pl/problems/GSS4/题目大意:求和+更新,一看到这种组合再看数据(n思路:看着像区间更新,但是每一点每次减少的值不一定一样,所以lazy标志不怎么适用.其实这题看似区间更新,其实是单点更新,因为序列中最大的值不会超过10^18,所以每一个值最多被更新7次,所以复杂度还是O(nlogn).代码:#include原创 2012-06-04 11:04:04 · 660 阅读 · 0 评论 -
hdu 4419 Colourful Rectangle
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4419题目大意: 给定n个矩形,矩形的长平行于x轴,宽平行于y轴,每个矩形的颜色可能是R,G或B,矩形可能重叠,如果R和G(或G,R)重叠变为RG,如果三色重叠就是RGB,求所有颜色块(R,G,B,RG,RB,GB,RGB)的面积.题目思路: 很容易想到扫原创 2012-09-26 14:24:01 · 555 阅读 · 0 评论 -
hdu 4268 Alice and Bob
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4268题目大意:Alice和Bob各有N(N题目思路:如果Alice的某张卡的h大于Bob的某些卡的h,那么可以知道Alice的这张卡应该盖这些卡中w值最大的且w值小于Alice的这张卡的w值(设为W).假设Alice不盖可以盖的最大w值的那张卡,盖了一张小的(设为W‘),那原创 2012-09-16 00:34:39 · 596 阅读 · 0 评论 -
CF 228D Zigzag
题目链接:http://codeforces.com/problemset/problem/228/D题目大意:要求对a[]单点更新和询问和.和的形式:s的定义:题目思路:小小抱怨一下,这题到比赛结束时居然才10几人搞出来,真坑爹= =...很明显线段树直接上,入手处2结点上保存z=2~6的各个和.从s的定义知道,1原创 2012-09-28 14:06:41 · 773 阅读 · 0 评论 -
hdu 4267 A Simple Problem with Integers
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4267题目大意:对一个长度为n(1操作1:给定a,b,k,c四个整数,使得a,b间满足a操作2:给定整数a,求A[a].思路:区间更新,询问单点,可用树状数组(今天学到,一般的树状数组是单点更新,询问区间,反过来即可).隔段更新,所以直接用树状树组不行,那么我们可原创 2012-09-10 21:34:52 · 555 阅读 · 0 评论 -
hdu 1892 See you~
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1892题目大意:在一个1001*1001的每一个点的初始值为1的矩形中,对某一点上的数值进行加减,或从某一点移动若干数值到某一点,并会有询问某子矩形中的数值,这个子矩形的边与母矩形平行.题目思路:二维树状数组...坑爹的一开始写了个二维线段树 =,=,TLE了...代码:原创 2012-07-20 00:36:04 · 435 阅读 · 0 评论 -
hdu 3473 Minimum Sum
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3473题目大意:求数列X0,X1,...,Xn-1中任意区间[l,r]中min{求和(|N-Xi|)}(N为区间[L,R]的某一数,L题目思路:容易证明选择的N是该区间的中位数,笔者可以自己试着证明.既然记得求中位数,加上那么大的数据量,不难想到划分树.比模板划分树多了一个s原创 2012-07-18 02:01:51 · 630 阅读 · 0 评论 -
spoj 1557 Can you answer these queries II
题目链接:https://www.spoj.pl/problems/GSS2/题目大意:求子序列的最大子序列和,但是相同值只加一次.思路:可以看成是Necklace的升级版,不同的地方在于求的是区间最大子区间,而不是区间和,所以线段树维护的值当然也不太一样,其余都一样了.那么不一样在神马地方捏?首先结点中保存的值不再是某位置的值而是从某位置起加到当前位置(sum[])以原创 2012-06-02 16:28:27 · 1410 阅读 · 0 评论 -
spoj 2916 Can you answer these queries V
题目链接:https://www.spoj.pl/problems/GSS5/题目大意:询问( q(x1,y1,x2,y2) )一个数列A[1],A[2]...A[N]中的max{A[i]+A[i+1]+...+A[j]}值,其中x1题目思路:首先要讨论x2>y1?如果是的话那么可知i和j不会重合,那么只要求出y1~x2的和,y1起(止于x1)向左加所得的最大值(rmax)原创 2012-07-05 10:22:02 · 1079 阅读 · 0 评论 -
CF 220B Little Elephant and Array
题目链接:http://codeforces.com/problemset/problem/220/B题目大意:给定一个长度为n(1题目思路:对询问离线处理,按照r排序.对a从1~n,顺序处理.设number[x],为x出现的次数,position[x][y]为x出现第y次的位置.设在i位置时,number[ a[i] ] >= a[i]则第 pos原创 2012-10-31 21:48:24 · 502 阅读 · 0 评论 -
CF 242E XOR on Segment
题目链接:http://codeforces.com/problemset/problem/242/E题目大意:给定一个长为n(n1:求sum[l,r]; 2:对[l,r]中的所有数和x异或题目思路:一看题目,摆明了是成段更新的线段树,但是异或不符合分配律的( (a+b)^x != a^x+b^x ),但是我们知道异或对于一个数上的二进制表达式的原创 2012-11-14 19:27:34 · 621 阅读 · 0 评论 -
poj 3368 Frequent values
题目链接:http://poj.org/problem?id=3368题目思路:给定一个长度为n(n数组中的数的范围:[-100000,100000].q次(q题目大意:如果不是非递减的话,还真想不出要怎么做,求大牛指导.递减的话就很好做了,构造一个新的数组,把每个相同的数所在区间看成一个数,出现的次数,看成这个这个数的值,然后用这个新数组构造一颗求原创 2012-12-05 20:06:56 · 540 阅读 · 0 评论 -
fzu 2105 Digits Count
题目链接:http://acm.fzu.edu.cn/problem.php?pid=2105题目大意:长度为n(1~10^6)的数组A[](01:and opn l r l2:or opn l r l3:xor opn l r l1:sum l r l操作总数为m(1~10^5)。题目思路:很裸的线段树,维护区间中原创 2013-04-27 13:16:04 · 835 阅读 · 0 评论 -
zoj 3699 Dakar Rally
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3699题目大意:有n段路,从左到右编号1~n,只有通过一段路才会耗油,每段路的最左边有一个加油站,第i段路的加油站的邮费pi、长度是mi、单位耗油ci。给定邮箱容量cap,问从左到右通过n段路的最小耗油量。所有正整数不超过10^5.原创 2013-04-26 14:53:34 · 1424 阅读 · 0 评论 -
zoj 3632 Watermelon Full of Water
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4778 题目大意:暑假有n(1~50000)天,第i天西瓜的价格是p[i],可以吃d[i]天,如果在第i天买了个西瓜,那么旧的西瓜要扔掉,开始吃新西瓜。问每天都能吃到西瓜的最小花费。 题目思路:p[i]表示第i天买喜欢的花费,d[i]表原创 2013-04-17 16:38:09 · 822 阅读 · 0 评论 -
CF 292E Copying Data
题目链接:http://codeforces.com/problemset/problem/292/E题目大意:给定两个长度为n(1~10^5)的数组a[]和数组b[],有两个操作。1: 1 x y k,令b[y+q]=a[x+q] (02: 2 x, 问当前的b[x]的值。最多操作次数m为10^5.题目思路:croc 2013 round1 的最后一题原创 2013-04-16 16:39:14 · 807 阅读 · 0 评论 -
CF 46D Parking Lot
题目链接:http://codeforces.com/problemset/problem/46/D题目大意:在长为L的(点0~点L)的线段上停车开车操作;停车 1 x:车长x,需要b+x+f的空余才能使车停进去,多个区域,选择最左边开车 2 x:第x次操作,停进的车,开出去题目思路:思路很简单,很裸的线段树区间合并。但是我还是做第三次了,都没有1A,所原创 2013-04-08 21:35:49 · 1093 阅读 · 0 评论 -
CF 276E Little Girl and Problem on Trees
题目链接:http://codeforces.com/problemset/problem/276/E题目大意:一棵树有n个点,编号1~n,1为根,除根意外的所有结点,至多一个子结点。有两种操作0 v x d:和v结点距离不大于d的所有结点权值+x1 v :输出结点v的权值题目思路:看似像区间更新+单点询问,但是却又不一样,因为是在一棵树上而不是线原创 2013-03-19 21:22:12 · 964 阅读 · 0 评论 -
zoj 3686 A Simple Tree Problem
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3686 题目大意:一棵树有n个结点(1现在有2种操作o操作:(o,x)对结点x及其所有子孙结点的标签值取反(和1异或)。q操作:(q,x)输出结点x及其所以子孙结点的标签值为1的个数。操作次数为m次(1 题目思路:从根开始中序原创 2013-04-01 16:19:52 · 1104 阅读 · 0 评论 -
CF 150C Smart Cheater
题目链接:http://codeforces.com/problemset/problem/150/C题目大意:有n个站台,编号1~n,第i站台的坐标为xi (0 = x0 a站台到b站点的花费为xb-xa.m个人坐车,第i个人在第ai站上车,bi站下车(1 售票员卖票时最多可以从[a,b]中选一段[c,d](c 由于司机可能在[xi,xi+1]有pi的可能性查票,原创 2013-03-11 00:13:53 · 1046 阅读 · 0 评论 -
poj 2886 Who Gets the Most Candies?
题目链接:http://poj.org/problem?id=2886题目大意:有n个孩子围成一个环(顺时针从1编号到n),手里各有一张写着非零数的卡片,一开始第k个孩子先出环,如果出环的孩子的卡片上的数num是正数,那么下一个出环的是其右边的第num个孩子,负数则为其左边的第num个.第p个出环的孩子可以获得F(p)个糖果,F(p)=p的因子数.求获得最多糖果的孩子是谁和原创 2013-01-20 18:19:59 · 501 阅读 · 0 评论 -
CF 85D Sum of Medians
题目链接:http://www.codeforces.com/problemset/problem/85/D题目大意:求集合{a1,a2,a3,....}且a1,元素不是按从小到大添加到集合中的,且还有移除元素的操作,询问是多次的.思路:看到这种边更新边询问,不经意的想到线段树.用线段树维护mod5=3的sum3,直接求是不现实的,我们可以把集合(这边的集合是指全部出现过的元素原创 2012-05-25 23:51:07 · 650 阅读 · 0 评论 -
zoj 3511 Cake Robbery
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4376题目大意:一个凸多边形的大蛋糕,切m刀,每刀之间不会相交(端点除外),并且不会出现切在蛋糕的边缘上,求切m刀后边最多的小蛋糕的边数.题目思路:因为我们求的是边数,所以可以假设这块蛋糕是个正多边形,把每一刀看成线段,我们把线段从小到大排序,然后再去分原创 2012-05-25 21:26:41 · 469 阅读 · 0 评论 -
poj 2464 Brownie Points II
题目链接:http://poj.org/problem?id=2464题目大意:Stan选一个星星用一条垂线穿过它(相同x值的星星也会被穿过),Ollie在这条垂线所穿过的星星选一个星星用一条水平线穿过,这样把星星分到四个区域,Stan的得分为右上和左下,Ollie则为右下和左上.Stan选星星的策略是选的星星使得他的最低可能得分最大,Ollie的选择是让自己得分最大.求Stan的原创 2012-05-10 00:40:04 · 629 阅读 · 0 评论 -
hdu 3465 Life is a Line
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3465题目大意:求交点的x坐标落于开区间(l,r)的直线对对数.思路:设直线和x=l交于(l,h1),和x=r交于(r,h2),按照h1降序排序(h1相等的按照h2降序).得到一个h2数列,求这个h2数列的顺序数(i代码:#include #include #includ原创 2012-05-12 18:21:48 · 561 阅读 · 0 评论 -
hdu 2642 Stars
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2642题目大意:一开始全部的星星是暗着的.Bxy:表示(x,y)的星星亮;Dxy:表示(x,y)的星星暗;Qx1x2y1y2:表示求出(x1,y1)--->(x2,y2)的亮着的星星的数量.思路:很明显的二维树状数组.代码:#include #include原创 2012-05-12 01:34:13 · 493 阅读 · 0 评论 -
hdu 3450 Counting Sequences
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3450题目大意:寻找某个整数列中的完美子序列(相邻之间差不超过d)个数.题目思路:dp[x]=dp[i]+...+dp[j](a[]为整数列,a[i],a[j]的值和a[x]的差的觉得值不超过d),dp[]中存的为一当前位置结尾完美子序列的个数.),求dp[i]+...+dp[j]同样用原创 2012-05-11 23:48:51 · 565 阅读 · 0 评论 -
hdu 1541 Stars
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1541题目大意:给定了星星的坐标(按y从升序,y相同的,按x升序),求星星的等级,星星的等级等于它左下角(包括正下和正左)的星星数.题目思路:以星星的x坐标建立线段树或树状数组,先查询后更新.代码:#include #include #include #include #原创 2012-05-12 00:35:26 · 405 阅读 · 0 评论 -
hdu 2227 Find the nondecreasing subsequences
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2227题目大意:寻找一整数列中非递减子数列的个数.题目思路:dp[x]=dp[i]+...+dp[j](a[]为整数列,a[i],...,a[j]代码:#include #include #include #include #include #include #i原创 2012-05-11 23:53:49 · 897 阅读 · 0 评论 -
UESTC 1558 Charitable Exchange
题目链接:http://acm.uestc.edu.cn/problem.php?pid=1558题目大意:star一开始有1元,他可以通过一次交换(v,r,t)来增加自己的资金,v(1~10^9)表示得到的资金,r(1~10^9)表示交换耗去的资金,t(1~10^9)表示该次交换耗费的时间,给定n(1~10^5)种交换,star最后至少有m(1~10^9)元,求达到要求的最小时间.原创 2012-05-29 14:29:10 · 493 阅读 · 0 评论 -
hdu 3030 Increasing Speed Limits
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3030题目大意: 通过题目描述的方法产生一个正整数列,求递增非连续子数列的个数.思路:dp[x]=dp[i]+...+dp[j]+1 (B[]为产生的正整数列,B[i]~B[j]的值小于B[x] && i,j代码:#include #include #include原创 2012-05-10 00:01:57 · 530 阅读 · 0 评论 -
hdu 2838 Cow Sorting
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2838题目大意:有n头(1思路:因为相邻的牛才能交换,那么把rank小的先换到其最终位置就能保证时间最小,因为如果有个rank大的先别换到其最终位置但是还有一个rank小的在它后面,那么rank大的必然还要再交换.用线段树或树状数组快速求需要交换的牛的rank和sum和需要交换的牛原创 2012-05-10 00:27:17 · 460 阅读 · 0 评论 -
hdu 2688 Rotate
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2688题目大意:求某数列的顺序数(i {S+1,S+2,...,E,S} (用这个方式比较好解释),下标是从0开始的. 还有一个是询问操作就是Q.思路:可以用线段树或者树状数组求出初序列的顺序数,因为abs(S-E)暴力求一个R操作后的顺序数:暴力扫一遍{S+1,S+2,原创 2012-05-07 23:51:56 · 487 阅读 · 0 评论 -
hdu 3458 Rectangles Too!
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3458题目大意:给定一串矩形列,求最长子矩形列.题目思路:(1)dp[cur]=max(dp[i],...,dp[j])(rct[i]~rct[j]均小于rct[cur],dp[]存放以rct[]结尾的最长子矩阵列),求max(dp[i],...,dp[j])可以用线段树.原创 2012-05-14 14:04:23 · 696 阅读 · 0 评论 -
sopj 1716 Can you answer these queries III
题目链接:https://www.spoj.pl/problems/GSS3/题目大意:求子序列的最大子序列和,且可单点更新某一值.思路:和Can you answer these queries I一样,但是sum不能离线,需要在线段树中维护,因为值会被更新.代码:#include #include #include #include #include原创 2012-06-01 16:19:03 · 6545 阅读 · 0 评论 -
hdu 3016 Man Down
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3016题目大意:一个男人从在最上面的木板开始往下跳,他只可以从木板的最左端或最右端处直线下跳.假设从xi跳,那么他会落在当前木板的高度以下的某块木板(左端点为xl,右端点为xr),该木板满足xl思路:dp[cur]=max(dp[i],...,dp[j])(a[]为木板,a[i]..原创 2012-05-14 21:00:57 · 433 阅读 · 0 评论 -
hdu 3340 Rain in ACStar
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3340题目大意:天下会掉下一些图形(三边形,四边形,五边形)在数轴上,求数轴上某一段区间落下的图形的面积和.思路:换了一种新写法,把初始化和算法部分分别写成init()函数和sof()函数,为什么要这样写呢?因为查错的时候相对会比较方便,也能相对提高代码的可读性.ok! 进入正题.原创 2012-05-22 21:32:21 · 1066 阅读 · 0 评论 -
hdu3333 Turing Tree
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3333题目大意:求区间和,但是相同的数,只加一次.题目思路:同Necklace,但是要对数列离散化.代码:和Necklace差不多,看着办吧...原创 2012-05-21 17:02:46 · 591 阅读 · 0 评论 -
hdu 3874 Necklace
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3874题目大意:求区间和,但相同的数只加一次.题目思路:这题直接用线段树是做不出来,会退化成O(nlogn),除非线段树中不同的数只存一个,这样就变成最简单的区间求和,用树状数组也能做.但是我们需要边建树边询问,遇到树中有相同的数时,先把树中的数删档,再在当前位置添加该数,之后在判断原创 2012-05-21 16:58:31 · 764 阅读 · 0 评论