
数据结构—树状数组
文章平均质量分 76
Ezereal
这个作者很懒,什么都没留下…
展开
-
poj 2155 (二维数组)
这题是比较经典的二维树状数组,题意是给你个矩阵里面开始全是0,然后给你两种指令:1:‘C x1,y1,x2,y2’就是将左上角为x1,y1,右下角为x2,y2,的这个矩阵内的数字全部翻转,0变1,1变0,;2:'Q x1 y1',输出a[x1][y1]的值。这题的巧妙只初在于重叠消元,将要翻转的矩阵的四个角更新一遍就ok了,去掉重叠部分(结果模2),刚好剩下了这个矩阵翻转了.#include原创 2015-10-26 20:38:17 · 456 阅读 · 0 评论 -
Codeforces Round #368 (Div. 2) E Garlands(二维树状数组+暴力)
题意:给你n*m的矩阵,有k条链,两种操作,你可以每次修改一条链的值,使之变为0或者恢复原来的值,或者查询一个子矩阵的权值和思路:n,m,k只有2000,并且留意到题目说查询权值和的操作最多只有2000次,那么就可以不用每次修改的时候就马上修改,而是选择给它一个标记,到了询问的时候再遍历一次所有链来修改,有点类似线段树的lazy标志一样,查询子矩阵的权值和显然的做法就是用一个二维树状数组,原创 2016-10-08 09:19:42 · 361 阅读 · 0 评论 -
Codeforces Round #348 (VK Cup 2016 Round 2, Div. 2 Edition) E. Little Artem and Time Machine 树状数组
题意有三个操作1 x y,在第x秒插入一个y2 x y,在第x秒移走一个y3 x y, 问第x秒有多少个y题解:裸的可持久化treap,可以直接莽一波……但是这道题可以用树状数组做,时间复杂度是nlog(1e9)log(1e9)的所以感觉还是蛮快的空间是nlogn的#include #include #include原创 2016-09-28 13:53:30 · 453 阅读 · 0 评论 -
Codeforces Round #365 (Div. 2) D.Mishka and Interesting sum (树状数组维护异或值) ★ ★
题目大意:给一大堆数字,问[L,R]区间,数字出现偶数次的数字,全部XOR起来的结果。比如区间内数字有【1,2,3,3,2,1,1】1出现3次2出现2次3出现2次结果就是2 xor 3,这两个数字出线的次数是偶数次。题解:显然,区间【所有数字,可以重复出现】直接xor起来的结果,相当于xor了出现奇数次的数字。如果区间所有数字,每个【数字只选一个】全部xor原创 2016-10-12 20:37:48 · 509 阅读 · 0 评论 -
[hdu 5032]2014北京网络赛Always Cook Mushroom 离线线段树/树状数组
题目大意给定一片蘑菇田,只有从(1,1)至(1000,1000)的整数点能产蘑菇,点(x,y)的蘑菇产量为(x+A)(y+B)给定直角三角形的两个顶点和斜边的斜率,用(a,b)的形式给出,求该三角形内的蘑菇产量和。解题思路因为点最多有1000*1000=100W个,可以先求出他们斜率并排序,找到每个斜率的rank,并将询问按照极角排序,离线将询问的斜率也排序,逆时针每个点加转载 2016-09-26 22:28:27 · 314 阅读 · 0 评论 -
Educational Codeforces Round 8(E. Zbazi in Zeydabad(树状数组优化))★ ★
题意:一个n*m矩阵, 里面的格子除了'z'就是'.',问有多少个z形图案。思路:因为n和m很大, 即使n^3复杂度也会超时。 如果按照最朴素的方法, 我们可以处理一下前缀和, 处理出一个格子向左l[i][j]、向右r[i][j]、斜向左下lr[i][j]连着的z到哪里为止, 这样我们用n^2复杂度枚举每一个格子作为z形图案的右上角,取min(l[i][j], lr[i][j]), 就可转载 2016-08-31 16:38:57 · 709 阅读 · 0 评论 -
2016 大连网络赛 hdu 5869 Different GCD Subarray Query(gcd+树状数组)★ ★
题意:长度n的序列, m个询问区间[L, R], 问区间内的所有子段的不同GCD值有多少种.题解:考虑固定左端点的不同GCD值,只有不超过logA种, 所以事件点只有nlogA个. 那么离线处理, 按照区间右端点排序从小到大处理询问,用一个树状数组维护每个GCD值的最大左端点位置即可. 复杂度是O(nlogAlogn).这份题解里有两个难点:1、如何快速的离线化处理出固定的转载 2016-09-11 23:02:49 · 736 阅读 · 0 评论 -
2016 大连网络赛 HDU 5877 Weak Pair (DFS + 树状数组 + 离散化)
题意:给定一颗树,然后对于每一个节点,找到它的任何一个祖先u,如果num[u] * num[v] 题解:dfs搜索一遍树结构,树状数组记录路径上的数信息,由于数太大,所以需要离散化一下#include #include #include #include #include #include #include #include #include #include #inc原创 2016-09-11 19:36:55 · 393 阅读 · 0 评论 -
HDU 5862 Counting Intersections(离散化+树状数组)
题目大意 给定n条水平或竖直的线段,统计所有线段的交点个数。 (n解题分析 首先将线段离散化。 然后将所有线段按照横坐标的顺序,按照先插入再查找再删除的顺序进行操作。 对于横线 如果是左端点,则将其纵坐标加1,右端点则减1,对于竖线直接求和就行了。 注意排序的时候优先处理竖线,因为有竖线刚好和横线左端点相交的情况#include #include原创 2016-08-21 11:05:09 · 451 阅读 · 0 评论 -
HDU 5861 Road (线段树+树状数组)
题意:水平线上n个村子间有 n-1 条路. 每条路开放一天的价格为 Cost_i.有 m 天的操作,每天需要用到村子 Ai~Bi 间的道路.每条路只能开放或关闭一次. (不能重复开关)求每天的最小花费.题解:线段树:维护每条路第一次和最后一次被用到的天数.然后用树状数组维护前缀和,最后输出即可#include #include #include #原创 2016-08-19 14:32:23 · 487 阅读 · 0 评论 -
scu oj 4441 Necklace(dp+树状数组求上升序列最大和)
题意:N个数构成一个环,现在可以删除一些数,使得这个环可以分成连续的三部分:X部分:所有数不降Y部分:仅含一个值为10000的数Z部分:所有数不增(X,Y中不含值为10000的数),值为10000的数不超过10个。求满足条件的环中,剩余数字的和最大为多少?题解:枚举值为10000的数。确定值为10000的数的位置后,环就断成了一条链。我们可以用动态规原创 2016-08-28 13:45:23 · 658 阅读 · 0 评论 -
ZOJ 2112 Dynamic Rankings (动态第k大,树状数组套主席树)★★
这题是动态第k大。 如果是不修改,直接主席树就可以了。要修改要套如树状数组求和。#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;const in转载 2016-08-15 21:49:07 · 774 阅读 · 0 评论 -
poj 2299 Ultra-QuickSort
给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数,每读入一个数就更新树状数组,查看它前面比它小的已出现过的有多少个数sum,然后用当前位置减去该sum,就可以得到当前数导致的逆序对数了。把所有的加起来就是总的逆序对数。题目中的数都是独一无二的,这些数最...原创 2015-10-27 13:45:21 · 362 阅读 · 0 评论 -
POJ 2352
题目大意:在坐标上有n个星星,如果某个星星坐标为(x, y), 它的左下位置为:(x0,y0),x0按照y递增,如果y相同则x递增的顺序给出n个星星,求出所有level水平的数量。分析与总结:因为输入是按照按照y递增,如果y相同则x递增的顺序给出的, 所以,对于第i颗星星,它的level就是之前出现过的星星中,横坐标x小于等于i星横坐标的那些星星的总数量原创 2015-10-26 16:51:21 · 423 阅读 · 0 评论 -
2016 ACM/ICPC Reginal Shengyang hdu 5892 -Resident Evil 二维树状数组 + 状态压缩
题目大意:有50种动物,给你n*n的矩阵,m次操作,P代表加入操作,在左上角 x1,y1 到右下角 x2,y2,的矩形范围内加入种类为x,数量为y的动物。 Q代表询问操作,在左上角 x1,y1 到右下角 x2,y2,对于1~50种动物,如果数量之和为偶数,输出1,否则输出2。思路:把50种东西压缩成一个longlong,每一位代表一种,对于数量,我们只需要知道奇偶,也即该位转载 2016-10-20 15:13:08 · 542 阅读 · 0 评论