
莫队算法
ws_yzy
一如OI情似海
展开
-
BZOJ 2038: [2009国家集训队]小Z的袜子(hose)|分块|莫队算法
似乎莫对算法才是正确的的姿势 不过直接分块暴力也可以 需要与处理几个东西和作诗那个题非常的相似,只不过那个题是强制在线的 维护到从开始每一个块的颜色的前缀和,块到块之间的答案 询问的时候,不跨过块就排序暴力判断,跨过块就先统计整块的答案,然后把两边的的单独排序暴力更新答案 学了莫队之后似乎就要换个姿势了#include<cstdio>#include<cstdlib>#include<原创 2016-01-23 09:31:07 · 785 阅读 · 0 评论 -
BZOJ 3339: Rmq Problem|莫队算法
莫队无脑暴力#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<queue>#include<vector>#include<set>#include<map>#include<iostream>#include<algorithm>#define lowbit(x) (x&(-x))原创 2016-01-23 18:46:22 · 751 阅读 · 0 评论 -
BZOJ 3585: mex|莫队算法
离线处理,这题完全不用离散化直接无视>n的数就可以了 因为大于n的数对答案肯定没有影响 代码与BZOJ3339完全一样……似有又水了一题#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<queue>#include<vector>#include<set>#include<map>#原创 2016-01-23 18:50:39 · 1239 阅读 · 0 评论 -
BZOJ 3809: Gty的二逼妹子序列|莫队算法|分块
这题还卡树状数组,一把辛酸泪啊! 考虑维护每个颜色用分块,修改是O(1)查询是sqrt(n) Code:分块#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<queue>#include<vector>#inc原创 2016-01-24 08:00:17 · 496 阅读 · 0 评论 -
BZOJ 3236: [Ahoi2013]作业|莫队算法|树状数组
这个题显然是需要二维的做法 先用莫队离线对询问排序后维护两个树状数组,记录两个询问的答案,对于第二个询问,可以再开一个数组,记录每个数出现的次数#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<queue>#include<vector>#include<set>#include<map原创 2016-02-17 15:14:01 · 1324 阅读 · 0 评论 -
BZOJ 3207: 花神的嘲讽计划Ⅰ|莫队|主席树|hash
本来以为会卡主席树内存,然后写了莫队T到死,发现想多了…… 然而这题并不卡内存,直接主席树做就好了。 先给长度为K的序列hash一下然后就变成了询问一个区间内有没有某一个数,我离散化了一下,然后改成主席树发现又T到死……woc…终于发现二分查找有鬼.. 然后就发现似乎莫队和主席树的二分都是一样的都有鬼..改了一下发现都能过,而且,而且莫队比主席树要快!!!!!!!!!! 发现主席树似乎并不需原创 2016-02-20 09:31:04 · 750 阅读 · 0 评论 -
2639: 矩形计算|二维莫队
被刷了一天题现在整个人处于SB状态。。 二维莫队就是直接把横纵坐标都分块,具体的做法就是坐标(x,y)(x,y)属于块⌊x−1n√⌋∗m−−√+⌊y−1m√⌋\lfloor\frac{x-1}{\sqrt{n}}\rfloor*\sqrt{m}+\lfloor\frac{y-1}{\sqrt{m}}\rfloor,然后就开始像一维的那样暴力维护。 两个矩形相互转移的的时候有点乱,算是二维莫队的最原创 2016-03-14 21:27:45 · 1379 阅读 · 0 评论 -
4540: [Hnoi2016]序列|莫队+ST表
考虑现在已经知道了[l,r][l,r]的答案新添入一个r+1r+1如何更新答案 也就是右端点在r+1r+1处左端点在l..r+1l..r+1之间的所有的子序列的答案 可以找出l..rl..r中最小的数的位置pp,然后pp以及pp左侧作为左端点的答案就可以直接计算了 考虑左端点在p+1....r+1p+1....r+1时对答案的贡献,可以与处理一个前缀和SiS_i表示以ii为右端点的所有子序列的原创 2016-04-23 09:06:57 · 2709 阅读 · 1 评论 -
4542: [Hnoi2016]大数|莫队
HN一天考两个莫队是什么鬼..或者说莫队不是正确的姿势..? 考虑已经知道了l..rl..r的答案新添入r+1r+1如何更新当前答案 需要先预处理出后缀modpmod p的值bib_i,假设子序列l..rl..r模pp的值为xx 那么x∗10r−l+b[r]=b[l]x*10^{r-l}+b[r]=b[l] 然后就可以直接莫队统计了 模数为2或5的时候要特判一下#include<algori原创 2016-04-23 19:16:03 · 3239 阅读 · 3 评论