树状数组
mousemjq
这个作者很懒,什么都没留下…
展开
-
【树状数组】树状数组及扩展与应用
一)普通树状数组树状数组(Binary Indexed Tree(BIT))是一个查询和修改复杂度都为log(n)的数据结构。主要用于查询任意两位之间的所有元素之和,单点修改,单点查询。尽管如此,它的常数很小,虽然线段树的许多操作做不到,它依然有着广泛的应用,在辅以CDQ分治、整体二分时尤为凸显。 这就是树状数组的样子。它的实现:#define lb(x) (x&-x)int t[MAXN];原创 2017-03-17 21:46:39 · 767 阅读 · 0 评论 -
【bzoj1901】Dynamic Rankings(整体二分)
Description给定一个含有n个数的序列a[1],a[2],a[3]……a[n],程序必须回答这样的询问:对于给定的i,j,k,在a[i],a[i+1],a[i+2]……a[j]中第k小的数是多少(1≤k≤j-i+1),并且,你可以改变一些a[i]的值,改变后,程序还能针对改变后的a继续回答上面的问题。你需要编一个这样的程序,从输入文件中读入序列a,然后读入一系列的指令,包括询问指令和修改指令原创 2017-03-17 22:02:43 · 484 阅读 · 0 评论 -
【BZOJ1264】【AHOI2006】基因匹配Match (dp+树状数组)
Description卡卡昨天晚上做梦梦见他和可可来到了另外一个星球,这个星球上生物的DNA序列由无数种碱基排列而成(地球上只有4种),而更奇怪的是,组成DNA序列的每一种碱基在该序列中正好出现5次!这样如果一个DNA序列有N种不同的碱基构成,那么它的长度一定是5N。 卡卡醒来后向可可叙述了这个奇怪的梦,而可可这些日子正在研究生物信息学中的基因匹配问题,于是他决定为这个奇怪星球上的生物写一个简单的D原创 2017-03-27 15:44:52 · 355 阅读 · 0 评论 -
【BZOJ3211】【花神游历各国】&【BZOJ3038】上帝造题的七分钟2(树状数组+链表)
DescriptionInputOutput每次x=1时,每行一个整数,表示这次旅行的开心度Sample Input4 1 100 5 5 5 1 1 2 2 1 2 1 1 2 2 2 3 1 1 4Sample Output101 11 11HINT对于100%的数据, n ≤ 100000,m≤200000 ,data[i]非负且小于10^9题解: 题目大意为区间的开方与求原创 2017-03-27 16:00:39 · 373 阅读 · 0 评论 -
【BZOJ3333】【排队计划】(树状数组+线段树)
DescriptionInputOutputSample Input6 2 160 163 164 161 167 160 2 3 Sample Output631HINT题解: 题目大意:给定一个序列,每次选择一个位置,把这个位置之后所有小于等于这个数的数抽出来,排序,再插回去,求每次操作后的逆序对数。 很容易看出,只有排序的这些数字的相对位置发生了变化,因此也只有这些数字之间的逆序对个数发生原创 2017-03-27 16:20:37 · 339 阅读 · 0 评论 -
【BZOJ3529】【SDOI2014】数表(莫比乌斯反演+树状数组)(好题)
Description有一张N×M的数表,其第i行第j列(1<=i <=N,1<=j<=M)的数值为能同时整除i和j的所有自然数之和。给定a,计算数表中不大于a的数之和。Input输入包含多组数据。 输入的第一行一个整数Q表示测试点内的数据组数,接下来Q行,每行三个整数n,m,a(|a| < =10^9)描述一组数据。Output对每组数据,输出一行一个整数,表示答案模2^31的值。Sample原创 2017-03-27 16:51:16 · 513 阅读 · 0 评论 -
【BZOJ1176】【BOI2007】Mokia & 【BZOJ2683】简单题(CDQ分治+树状数组)
Description维护一个W*W的矩阵,初始值均为S.每次操作可以增加某格子的权值,或询问某子矩阵的总权值.修改操作数M<=160000,询问数Q<=10000,W<=2000000.Input第一行两个整数,S,W;其中S为矩阵初始值;W为矩阵大小接下来每行为一下三种输入之一(不包含引号):“1 x y a”“2 x1 y1 x2 y2”“3”输入1:你需要把(x,y)(第x行第y列)的格子权原创 2017-03-20 20:00:56 · 349 阅读 · 0 评论 -
【树状数组】树状数组の奇技淫巧专场
本篇文章将介绍一些非常规形态的树状数组的使用。一)异或版树状数组中记录的是一段值异或的结果。 例题:BZOJ2819 题目大意: 给定一棵树,每个节点是一堆石子,给定两种操作: 1.改变x号节点的石子数量 2.用从x到y的路径上的所有堆石子玩一次Nim游戏,询问是否有必胜策略 题解: 既然它只修改点的话,影响到的只是它这棵子树。那么很容易就想到了dfs序。这个子树就是连续一段。先维护每原创 2017-03-20 22:30:46 · 284 阅读 · 0 评论 -
【BZOJ2738】矩阵乘法(整体二分+二位树状数组)
Description 给你一个N*N的矩阵,不用算矩阵乘法,但是每次询问一个子矩形的第K小数。Input 第一行两个数N,Q,表示矩阵大小和询问组数; 接下来N行N列一共N*N个数,表示这个矩阵; 再接下来Q行每行5个数描述一个询问:x1,y1,x2,y2,k表示找到以(x1,y1)为左上角、以(x2,y2)为右下角的子矩形中的第K小数。Output 对于每组询问输出第K小的数。原创 2017-03-16 22:29:29 · 295 阅读 · 0 评论