数据结构—树状数组
文章平均质量分 54
slongle_amazing
这个作者很懒,什么都没留下…
展开
-
[BZOJ 1012] [JSOI2008] 最大数maxnumber
[JSOI2008]最大数maxnumberTime Limit: 3 Sec Memory Limit: 162 MBDescription现在请求你维护一个数列,要求提供以下两种操作: 1、 查询操作。语法:Q L 功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。 2、 插入操作。语法:A n 功能:将n加上t,其中t是最近一次查询操作的答案(如果还原创 2015-06-28 20:01:07 · 399 阅读 · 0 评论 -
BestCoder Round #77
T1 xiaoxin juju needs help题目大意给定每个字符出现的个数,询问排列为回文串的个数题解分为奇偶回文串,奇回文串只含一种字符出现奇数次,偶回文串要求所有字符都只出现偶数次 然后含重复字符的排列数Pnn∏Paiai\frac{P_n^n}{\prod P_{a_i}^{a_i}} CODET2 India and China Origins题目大意给定n∗m的图,每个点会在某原创 2016-03-27 15:53:55 · 491 阅读 · 0 评论 -
数据结构总结
鉴于我已经不会写树状数组[捂脸],新开一坑QAQAQ树状数组树状数组支持单点修改+区间和查询单点修改+区间最值查询区间加减+单点查询查询/修改区间最值,查询/修改区间和,单点修改 lowbit(a)=a and (-a) 定义C[i]=A[i-lowbit(i)+1]+…+A[i] 讲到树状数组必有的一张图 我们可以发现对于任意一个C[i],如果修改了的话,会影响到的是C[i+l原创 2015-08-21 12:58:58 · 869 阅读 · 0 评论 -
AC自动机
[HDU2222] Keywords Search传送门http://acm.hdu.edu.cn/showproblem.php?pid=2222题目大意给定n个模式串和1个模板串,询问有多少模式串在模板串题解AC自动机模板const maxn=10010; maxl=55;var trie:array[0..maxn*maxl,0..26]of longint;原创 2016-02-10 22:01:45 · 415 阅读 · 0 评论 -
[BZOJ3631] [JLOI2014] 松鼠的新家
传送门www.lydsy.com/JudgeOnline/problem.php?id=3631题目大意给定一棵无根树和一个序列,在这个序列上依次遍历,求每个点的访问次数(最后一个点的访问次数要-1)题解树剖const maxn=300010;var w:array[0..3*maxn,1..2]of longint; bite,fa,son,size,dep,top,po原创 2016-02-18 13:50:27 · 957 阅读 · 0 评论 -
[BZOJ1452] [JSOI2009]Count
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1452题目大意支持两个操作 1.修改1个点的权值 2.查询矩阵内某权值出现的次数题解建立c棵树状数组,裸的二维树状数组const maxn=305; maxm=105;var bit:array[0..maxm,0..maxn,0..maxn]of longint;原创 2016-02-05 09:23:26 · 456 阅读 · 0 评论 -
[BZOJ1818] [Cqoi2010]内部白点
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1818题目大意给定平面上的一些黑点,其它位置都是白点,一个白点如果上下左右都有黑点就会变成黑点,求最终会有多少个黑点题解就是求交点个数 离散化后,取出所有线段,然后沿任意一个轴朝着一个方向扫,然后把平行于另一个轴的线段用端点记录,扫到一端就在树状数组里+1,另一端-1,树状数组求个区间和贡献答案原创 2016-02-11 12:39:03 · 626 阅读 · 0 评论 -
[BZOJ3132] 上帝造题的七分钟
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3132题目大意支持矩阵加减+矩阵和查询题解二维树状数组const maxn=2048;type data=array[0..maxn,0..maxn]of longint;var c,d,e,f:data; i,j,k:longint; n,m,x1,x原创 2016-02-07 18:09:49 · 614 阅读 · 0 评论 -
[BZOJ3262] 陌上花开
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=3262题目大意给定三维点对(xi,yi,zi)若两个点对存在xi<=xj,yi<=yj,zi<=zj则称点i<j,询问每个点前有多少点给定三维点对(x_i,y_i,z_i)若两个点对存在x_i<=x_j,y_i<=y_j,z_i<=z_j则称点i<j,询问每个点前有多少点题解三维偏序 我们对三维原创 2016-01-24 18:54:58 · 1268 阅读 · 0 评论 -
[BZOJ1782] [Usaco2010 Feb]slowdown 慢慢游
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=1782题目大意给定一棵n个点的树,每次从1出发到达a[i],询问到达a[i]之后,经过了几个之前已经到达的点题解简单画下图我们就能发现,每次走完就相当于给a[i]的子树权值(之后到达某个点的答案)+1,为了维护这个,我们用DFS序把子树维护到一条线段上,来回答每次询问 我们需要支持区间修改,单点原创 2015-11-01 20:14:57 · 798 阅读 · 0 评论 -
[BZOJ2743] [HEOI2012]采花
传送门http://www.lydsy.com/JudgeOnline/problem.php?id=2743题目大意给定一个序列,多次询问区间内出现两次以上的数的数量题解和HH的项链是一样的,离线处理树状数组维护,唯一的差别在于HH是维护区间第一个,而这道是维护区间第二个 我们用next[I]表示i后面第一个和i颜色相同的位置 在我们把左端点i向后推的时候,我们要修改next[i]-1,nex原创 2015-11-01 19:07:35 · 558 阅读 · 0 评论 -
部分经典算法
双关键字快排function swap(a,b:longint);var t:longint;begin for i:=1 to 3 do begin t:=x[a,i]; x[a,i]:=x[b,i]; x[b,i]:=t; end;end;procedure sort(l,r: longint);var i,j,x1,x2,y: longint;begin原创 2015-06-14 18:45:35 · 650 阅读 · 0 评论 -
[BZOJ3594] [Scoi2014]方伯伯的玉米田
[BZOJ3594] [Scoi2014]方伯伯的玉米田题目大意给定长度为nn的一个序列,可以找出kk个区间使这kk个区间的元素同时+1+1,询问最后最长不下降子序列的大小 n≤104,k≤500,ai≤5000n\le10^4,k\le 500,a_i\le5000题解一个结论:找出的区间的右端点一定是nn dp[i,j]=max{dp[k,l]}+1 (0≤k≤i−1,0≤l≤j,原创 2016-04-15 10:53:45 · 1462 阅读 · 0 评论