分块 / 莫队
文章平均质量分 71
orz11111111
这个作者很懒,什么都没留下…
展开
-
Codeforces 86D Powerful Array 莫队
莫队简介莫队(感觉就是niubi的排序.)将序列分成相等大小的若干块,每块大小为p,(p通常取sqrt(n)) 将query按下列方式离线处理后 复杂度神奇的达到了O(nsqrt(n))左右.1):排序,以左段点所在的块为第一关键字,以右端点为第二关键字2):从左往右处理询问(离线)3):已知当前[l,r]的答案后,不断调整l,r的位置并同时修改原创 2017-08-20 12:01:26 · 274 阅读 · 0 评论 -
CC Killing Monsters 分块+DP(SoS)
题意:n个怪兽 第i只的血量为h[i].Q次操作,第i次操作为(x,y) 对所有满足i&x=i的下标i 其血量减少y.n0.给出x x&i==i的下标i 肯定为x的子集 例如x=011110 i= 0????0 ?可以为0或者1.子集什么,试一试用SoS 假如下标i二进制表示为 101100 那么对它有伤害的操作其x为 1?11?? i为x的子集 则i为1的位置必须置为1,原创 2018-01-21 17:59:42 · 528 阅读 · 0 评论 -
CF 792E Coloured Ballons 平方分割+枚举
题意:n种颜色的气球 第i种颜色气球有a[i]个 现在用盒子来装气球,条件:不能有空盒子,每个盒子只能装同种颜色的气球,任意两个盒子装的气球个数相差问最少需要多少个盒子把所有气球都装起来? n任意两个盒子气球个数差xa[1]为最小值,x最后通过枚举出的x 判定一遍即可 O(N*sqrt(a[1])).x判定方法: a[i]可以分成a[i]/x组 剩下a[i]%原创 2017-11-26 11:03:37 · 227 阅读 · 0 评论 -
CC DEC.17 Chef And Easy Xor Queries 分块+懒标记
题意:长度为n的序列a,Q次操作,操作1:(i,x)将第a[i]变为x. 操作2:(i,k) 问有多少个前缀j(jn,Q暴力的话 每次单点修改a[i],都要修改pre[j](j>=i)的前缀和.每次查询都要查询每个pre[i](i现在对pre来分块.每块维护cnt[i][x]:该块pre值为x的有多少个.修改一个a[i]->y.对于每一块,每个x出现cnt次 则原创 2017-12-12 16:57:10 · 378 阅读 · 0 评论 -
CC NOV14 Chef and Churu 分块+BIT维护单点.
题意:长度为n的序列a,现在有n个函数f,第i个函数f[i]的值为(a[l[i]]+a[l[i]+1]...a[r[i]]).Q个操作操作1:修改a[i]的值.操作2:求f[l]+f[l+1]+..f[r]的值.n,Q可以用BIT O(logn)内求出一个f[i]的值 查询一次要O(nlogn) 总共O(Q*nlogn) TLE....现在能在O(logn)内求出一个f原创 2017-12-11 20:19:00 · 300 阅读 · 0 评论 -
HDU 5193 Go to movies Ⅱ 块状链表套树状数组(带插入和删除的逆序对)
HDU 5193题意:给出n个数的序列a,m个操作。操作1:[x,y] 将y插入到第x个人之后.操作2:[x],将第x个人删除(x+1,..n向前进一格).n,m,a[i]a[j] ).假如当前逆序对为res,那么插入一个数y之后 要知道[x+1,n]有多个比y小,[1..x-1]直接有多个比y大.插入,删除操作 如何处理下标?此时用到一个叫 块状链表的原创 2017-10-14 21:20:29 · 239 阅读 · 0 评论 -
HDU 5213 Lucky 容斥+莫队
HDU 5213题意:给出长度为n的序列a,和一个奇数K. m次询问[l,r,u,v] ln,m记录两组询问区间中每个数的出现频率 增加一个数时容易知道它的贡献,莫队排序后离线一下.[l,r,u,v] 每个询问有两个区间 不能直接排序? 所以把这两个不相关的区间拆成4个独立的区间 .f[l,r]为l,r内两数加为k的对数.res[l,r,u,v] = f[l,v] -原创 2017-10-14 09:50:07 · 175 阅读 · 0 评论 -
HDU 5145 NPY and girls 莫队+多重集排列
HDU 5145题意:给出长度为n的序列a,m次询问:给出[L,R],为a[L],a[L+1]..a[R]组成的集合的排列方案是多少?n,m,a[i]每次询问的是多重集的排列方案?回顾一下:[L,R]有k种不同数字 n1+n2+.nk=n 则假设排列方案为x 容易列出x*n1!*n2!..nk!=n!得x=n!/(n1!*..nk!).容易知道增加和删除一个数以后答案的变化原创 2017-10-12 12:15:45 · 205 阅读 · 0 评论 -
CS Hard Interval Expected Max 莫队(期望,计数)
点击打开链接题意:给出长度为n的序列a,Q次询问:问从[l,r]中选两个数,期望得到的最大值为多少? n,Q,a[i]例如1,3,10 最大值期望为6.6666667.9种选法(1,1),(1,3),(1,10),(3,1),(3,3),(3,10),(10,1),(10,3),(10,10).exp=(1+3*3+10*5)/9=6.666667看单个询问[l,r] nu原创 2017-10-04 13:18:18 · 313 阅读 · 0 评论 -
HDU 5286 wyh2000 and sequence 分块,贡献,好题
HDU 5286题意:给出长度为n的序列a,Q次在线询问[L,R],当[L,R]有k个不同的数c1,c2..ck,并且c[i]出现b[i]次.每次询问,求累加和[i=1...k](c[i]^b[i])n,Q能离线的话就直接莫队搞一搞 然而本题要求在线..在线就分块呗,O(n*sqrt(n))预处理出res[i][j] 第i块到第j块的ans (预处理方法就是更新新加原创 2017-10-18 19:32:11 · 225 阅读 · 0 评论 -
Xor 分段处理+LCA.
题意;n个结点的树,点带权,q次询问,问从a到b路径为t0,t1...tm,问路径上每k个点异或一次的值为多少? nk>sqrt(n)时 显然可以暴力往lca上跳,因为是从x->y,y往上跳时,第一次要跳dis%k.k#include #define rep(i,m,n) for(i=m;i<=(int)n;i++)#define inf 0x3f3f3f3fconst i原创 2017-09-18 09:46:00 · 377 阅读 · 0 评论 -
BZOJ 2002 弹飞绵羊 分块
题意:有n个装置编号0~n-1,每个装置有弹力k[i],在第i个装置给以弹到第i+k[i]个装置(若i+k[i]不存在 游戏结束)现在有m个操作,操作1:从第x个装置出发,弹多少次后游戏结束?,操作2:修改第i个装置弹力k[i]n,m序列分成根号n块,每个装置维护需要跳多少次到下一块及保存它在下一块的落点.查询一次只要sqrt(n),更新时只有[L,x]的pos及tim可能发生原创 2017-08-20 17:33:04 · 220 阅读 · 0 评论 -
HDU 6333 Harvest of Apples 组合数求和,莫队
题意:Q次询问,每次给出(n,m)问 S(n,m)=C(n,0)+C(n,1)+C(n,2)+...C(n,m).1<=Q,m<=n<=1e5S(n,m)=S(n,m-1)+C(n,m) . S(n,m)=2*S(n-1,m)-C(n,m).预处理阶乘和阶乘的逆元以后, 可以从一个询问S(n,m) O(1)转移到S(n+1,m),S(n-1,m),S(n,m+1),S(n...原创 2018-10-26 17:15:45 · 120 阅读 · 0 评论