莫队
文章平均质量分 60
linkfqy
A link to FQY.
展开
-
莫队算法
【前言】莫队算法(Mo’s algorithm)是由莫涛队长发明的,一种处理区间问题的离线算法,由于其代码简便,常数巨小,适合各种打暴力。另:关于带修改的莫队,可以看这里【做法】前提:如果已知区间[L,R]的答案,可以很快(log或常数级别)地得到区间[L±1,R±1]的答案。 对于区间询问[L,R],我们可以先读进来所有询问,按照某种顺序依次处理(线性移动L,R端点),就可以得到所有询问的答案。原创 2017-04-26 21:52:41 · 1609 阅读 · 1 评论 -
【带修改莫队】BZOJ2120 数颜色
题面在这里带修莫队第一题……十分简单,没有什么可讲的 不会的可以看这里但是查了一个下午……心态奔溃了 原因竟然是pow(n,2/3)的2/3是整数除,外加一些奇怪的东西附上代码:#include<cstdio>#include<algorithm>#include<cmath>using namespace std;const int maxn=10005,maxs=1000005;i原创 2017-04-27 16:24:53 · 1173 阅读 · 1 评论 -
【莫队算法】BZOJ2038 [2009国家集训队]小Z的袜子
题面在这里莫队的经典题…… 对于已知区间[L,R],它的答案是: ∑C2c[i]的个数C2R−L+1\frac{\sum C_{c[i]的个数}^2}{C_{R-L+1}^2} 由于处理分数比较麻烦,所以我们只要维护分子即可 即:对于变化的c[i]个数(设为x),维护C2xC_x^2 减去原来的,加上后面的即可附上代码:#include<cstdio>#include<algorithm原创 2017-04-26 14:07:06 · 1089 阅读 · 1 评论 -
【主席树|莫队|离线树状数组】BZOJ1878 [SDOI 2009]HH的项链
题面在这里这道题有三种解法,以下分别介绍(等我A掉会补全)【主席树】关于主席树戳这里造一个lst[i]表示位置i的这个数上一次出现的位置(如果没有就是0) 那么对于每次询问L~R范围里的数字种数 其实就是询问对于L≤i≤RL≤i≤R,满足lst[i]<Llst[i]<L的个数 那么就很好搞了,对lst造N棵值域线段树 询问就直接找到L-1这个位置看它前面有几个 复杂度O(Qlogn)O(Q原创 2017-04-25 07:18:18 · 1058 阅读 · 1 评论 -
带修改的莫队算法
【前言】普通的莫队算法固然强大,但是不能支持修改操作 于是就有了带修改莫队这种神奇的东西。【做法】普通的莫队可以看这里 那么对于询问的结构体,可以多记录一个信息ti 表示到这个询问为止最后做的修改的编号至于排序么……与普通莫队类似,只是把ti作为第3个关键字 (当R在同一块的,就按ti排序)处理时,要使当前区间,修改的指针一起动 (每次线性移动修改指针(修改/撤销),使得前ti个原创 2017-04-29 21:22:32 · 2119 阅读 · 1 评论