![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
文章平均质量分 89
sdjzping
这个作者很懒,什么都没留下…
展开
-
poj 2299 Ultra-QuickSort(树状数组+离散化的题目)据说是简单题,不过还是觉得好难。。。
1、http://poj.org/problem?id=22992、题目大意:一个序列有n个数字,他们是无序的,现在要将这些数字交换顺序,使得他们是从小到大排列的,输出最少交换几次,3、思路分析如果数字个数很小的话,实际上是可以用冒泡排序的,冒泡交换的步数实际上就是所求,但是数据很大,所以不能这么做,看网上解题报告用树状数组解决,作为第一个树状数组的题目,真心觉得好难,还得继续看,原创 2014-02-25 17:19:16 · 894 阅读 · 0 评论 -
poj 3321 Apple Tree(树状数组+dfs)中等难度
1、http://poj.org/problem?id=33212、题目大意:有一棵树,有n个叉,由n-1条枝条连接,每个叉上最多有一个苹果,假设原来每个叉上都有苹果,现在要对这棵苹果树进行m个操作,其中这m个操作由两种操作组成,C x表示如果x点有苹果就摘掉,没有苹果就长一个,Q x是查询以x结点为根的树有多少个苹果,这道题目看上去好像是普通的树状数组的题目,但是没有顺序,我们需要先按照原创 2014-03-06 20:31:51 · 863 阅读 · 0 评论 -
poj 2155 Matrix(二维树状数组,好题)中等难度题目,更新区域,查询单点
1、http://poj.org/problem?id=21552、题目大意:有一个n*n的矩阵,初始值时0,现在对该矩阵做两种操作,C x1 y1 x2 y2,是将这一区域的值是0的换成1,是1的换成0,Q x y查询(x,y)值是多少?这道题目一看很简单,抬手就写了个for循环,相当于5000*1000*1000的循环,果断超时了,这样的题目就要想到用树状数组来做了,但是这道题目跟原创 2014-03-04 10:38:22 · 936 阅读 · 0 评论 -
sgu 180. Inversions (树状数组+离散化,第一道需要改模板的题目,好题)
1、http://blog.csdn.net/sdjzping/article/details/203816652、题目大意:有n个数字,定义ia[j]这样的一对数为逆序对,求这个数中有多少逆序对,3、题目分析看着题目很简单,但是n=65537,两重for循环找必超时,所以想到了用树状数组,但是交了好几遍都错了,runtime error,原因就是数组中的数字可以到达10^9,数组原创 2014-03-03 19:32:23 · 1456 阅读 · 0 评论 -
poj 2029 Get Many Persimmon Trees(二维树状数组)
1、http://poj.org/problem?id=2029第一道树状数组的题目是自己一遍AC的,好激动,写篇博客纪念一下。。。2、题目大意:给定一个二维表格的长和宽,并给出有哪些方格内是有树的,题目要求的是在任意一个长h,宽是w的矩阵内最多有多少棵树,且这个矩形的长和宽是调换的,拿到这道题目觉得for循环就能做,但是需要大量的时间,而用树状数组就可以轻易的将时间降下来,树状数组真原创 2014-03-03 16:23:59 · 1138 阅读 · 0 评论 -
spoj 1029. Matrix Summation(二维树状数组)
1、http://www.spoj.com/problems/MATSUM/2、题目大意:给一个n*n的矩阵,对这个矩阵有三种操作,一是SET x y num将(x,y)位置的数改成num,二是SUM x1 y1 x2 y2,求(x1,y1)到(x2,y2)这一矩形内的数字和,并将其输出题目中说是每组样例输出一个换行,但是输出就不正确了,纠结。。。3、题目:SPOJ P原创 2014-03-03 21:18:59 · 1063 阅读 · 0 评论 -
树状数组详细解释
参见http://blog.sina.com.cn/s/blog_8627bf080100sq46.html树状数组第01讲 什么是树状数组?树状数组用来求区间元素和,求一次区间元素和的时间效率为O(logn)。有些同学会觉得很奇怪。用一个数组S[i]保存序列A[]的前i个元素和,那么求区间i,j的元素和不就为S[j]-S[i-1],那么时间效率为O(1),岂不是更快?但是,如原创 2014-02-26 11:16:28 · 625 阅读 · 0 评论 -
poj 3067 Japan(树状数组,注意题目向树状数组的转换)
1、http://poj.org/problem?id=30672、题目大意:知道东西两岸各有n,m个城市,现在给出两岸城市的连接情况,连线都是直线,求东西两岸的各个城市之间的连线有多少个交点实际上画图就可以看出来,只需要将所有连线按照东岸的城市从大到小排序,那么对于西岸的城市来说,前边比自己小的将都有交点,也就是转换成求该点前边有多少个比自己小的数的个数3、题目Japan原创 2014-02-27 01:20:29 · 682 阅读 · 0 评论 -
poj 2481 Cows(树状数组)题目有陷阱,转换后与stars类似
1、http://poj.org/problem?id=24812、题目大意:有n头牛,每头牛都有一个喜欢的区间[s,e],如果一头牛的区间是[Si,Ei],另一头牛的区间是[Sj,Ej],如果Si=Ej,我们定义为i这头牛比j这头牛更强壮,现在给出这n头牛的各自的区间,求每一头牛比她强壮的个数3、题目分析假如说把区间看做是点的坐标,那么这题既可以想成是求每一个点的左上方有多少原创 2014-02-26 19:35:46 · 772 阅读 · 0 评论 -
poj 1195 Mobile phones(二维的树状数组)得好好看。。。
1、http://poj.org/problem?id=11952、题目大意给定4种操作,分别是操作0的意思是创建一个S*S的空矩阵操作1的意思是将矩阵中的(X,Y)位值的数字加上A操作2的意思是求出左上角坐标是(L,B),右下角坐标是(R,T),求这一个矩形内的所有点的值的和操作3是样例结束符3、题目分析乍一看题目好像挺简单的,不就是操作一个矩阵嘛,从头遍历查原创 2014-02-26 16:53:29 · 726 阅读 · 0 评论 -
poj 2352 Stars(简单树状数组)此题也可以用线段树来做
1、http://poj.org/problem?id=23522、题目大意:给出n个点的坐标,定义一个点的等级为这个点的左下方的点的个数,输出等级为0的点的个数,等级为1的点的个数,一直输出到等级为n-1的点的个数题目已经给出是按照y坐标排序的,y相同按照x从小到大排序的,所以可以直接用树状数组的三个必要函数求用sum(x)求出这之前的个数,计算个数有多少个,输出即可3、题目原创 2014-02-26 10:32:48 · 989 阅读 · 0 评论 -
poi 1990 MooFest(树状数组题目,转换成两个树状数组来做)较难的题目****
1、http://poj.org/problem?id=19902、题目大意:题意:FJ有n头牛,排列成一条直线(不会在同一个点),给出每头牛在直线上的坐标x。另外,每头牛还有一个自己的声调w,如果两头牛(i和j)之间想要沟通的话,它们必须用同个音调max(w[i],w[j]),沟通起来消耗的能量为:max(w[i],w[j]) * 它们之间的距离。问要使所有的牛之间都能沟通(两两之间原创 2014-03-07 20:45:29 · 950 阅读 · 0 评论