数据结构-树状数组
-skyline-
这个作者很懒,什么都没留下…
展开
-
数据结构-树状数组-定义和模板
草稿我全忘了之后重新复习 哪些对我有点醒作用树状数组c[i]的含义: c[i]覆盖的长度是lowbit(i),存储前lowbit(i)个整数之和。lowbit(x)是取x的二进制的 最右边的1和它右边所有的0例如 lowbit(8) = 8D = 1000B树形图区间和查询 循环从大到小 [x, 0) >0 i-=lowbit(i) 减去最右边的1 从右至左(16-...原创 2020-01-17 02:25:59 · 476 阅读 · 0 评论 -
The Untended Antiquity (二维树状数组 哈希)
题意:3种操作1 在左上角(r1,c1)、右下角 (r2,c2) 的矩形框上设置围墙2 把左上角(r1,c1)、右下角 (r2,c2) 的矩形框上的围墙删掉3 询问(r1,c1) 能否不跨越围墙抵达 (r2,c2)如图,两个红叉分别为 (r1,c1) (r2,c2), 粉色是它们围成的围墙,用二维树状数组维护这个网格:在棕色的四个点(r1,c1) (r1,c2+1) ...原创 2019-10-12 19:08:41 · 122 阅读 · 0 评论 -
ZYB's Premutation HDU - 5592 (逆序对 线段树求第K大)
Problem DescriptionZYBhas a premutationP,but he only remeber the reverse log of each prefix of the premutation,now he ask you torestore the premutation.Pair(i,j)(i<j)is considered as a rev...原创 2019-07-07 15:32:15 · 177 阅读 · 1 评论 -
Lucky Array CodeForces - 121E(线段树 单点修改 区间和查询 优化)
题意:lucky数只由4和7组成给n个数,m个操作,操作有两种1.区间内每个数加上d2.询问区间lucky数有多少个数据保证在执行完所有区间加操作后,每个数不会超过1e4!思路1 线段树:直接暴力的话会T看上去是区间修改,其实lucky数的修改只能落到单点上,所以值的修改和计数的修改,都是单点修改①如果每修改一次都判断一下是不是lucky数,会T②如果不管是不是...原创 2019-10-04 15:25:52 · 243 阅读 · 0 评论 -
Mishka and Interesting sum CodeForces - 703D (离线 树状数组 区间内不同数字异或和)
题目链接题意:给你n个数,q次询问,每次询问求区间上出现偶数次的数 的异或和。思路:区间的异或实际上就是区间内出现奇数次的数的异或和(偶数次的异或后为0),但是现在要求的是出现偶数次的异或和,我们可以再异或一下区间内的所有不相同数,这样每种数出现次数都加了1,奇偶就交换了,求得的答案也就成了区间上出现偶数次的异或和,现在关键是怎么求区间内不相同的数的异或和,可以树状数组离线操作,每次只把出...原创 2019-10-06 04:34:32 · 203 阅读 · 0 评论 -
DP-最长上升子序列(LIS)
DP#include<bits/stdc++.h>using namespace std;int a[1005],dp[1005];int main(){ int n; cin>>n; for(int i=1;i<=n;++i) cin>>a[i]; for(int i=1;i<=n;++i){ ...原创 2019-10-07 08:51:30 · 145 阅读 · 1 评论