![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
莫队
文章平均质量分 80
# 莫队
黑夜和白天
过去无可挽回,未来可以改变
展开
-
带修莫队 ---- 离散化 + 暴力 + 带修莫队 F. Machine Learning
题目链接 题目大意: 给出nnn个数字,qqq个询问; 每次询问有两种类型,一种是询问区间,一种是单体修改; 询问区间是询问区间内最小的没用到的大于0的整数; 比如我有一串数字是 1 1 2 2 2 3 那么有两个1 三个2,一个3 出现次数分别有 两 三 一, 那么次数最小的没在区间内出现的是4; 解题思路: 对于这道题,除带修改莫队的模板之外,我们多加两个数组 vis cnt vis数组用来记录某个数出现的频率,cnt用来记录出现过的频率 那么每次询问的答案便是最小的没出现过的频率 我们原创 2021-09-11 11:29:24 · 60 阅读 · 0 评论 -
带修莫队 ---- P1903 [国家集训队]数颜色 / 维护队列 带修莫队模板
题目链接 题目大意: 解题思路: 带修改的莫队 首先我们要知道,普通的莫队算法是不资瓷修改操作的, 不过后人对莫队算法加以改进 发明了资瓷修改的莫队算法 思路 在进行修改操作的时候,修改操作是会对答案产生影响的(废话) 那么我们如何避免修改操作带来的影响呢? 首先我们需要把查询操作和修改操作分别记录下来。 在记录查询操作的时候,需要增加一个变量来记录离本次查询最近的修改的位置 然后套上莫队的板子,与普通莫队不一样的是,你需要用一个变量记录当前已经进行了几次修改 对于查询操作,如果当前改的比本次查询需要原创 2021-09-11 10:31:53 · 123 阅读 · 0 评论 -
莫队 ---- CF 135D. Jeff and Removing Periods (等差数列预处理 + 莫队)
题目 题目大意: 给你一个等差序列,每次查询一段区间[l,r][l,r][l,r]的答案。 显然这是典型的不带修改的区间询问类问题,我们可以考虑用莫队算法去解决。 解题思路: 接下来看怎么递推[l,r][l,r][l,r]到[l−1,r][l-1,r][l−1,r],[l,r+1][l,r+1][l,r+1]的关系 首先对区间的询问是: 每次 任选aia_iai,kkk,把aiaiai删掉,如ai+k==aia_{i+k}==a_{i}ai+k==ai则一直删下去,也就是把值相等,且下标原创 2021-09-22 20:12:31 · 112 阅读 · 0 评论 -
莫队 ---- 值域分块处理优化字典树上的查询 杭电多校2021第二场1004 i love counting
题目链接 题目大意: 就是给你nnn个数,mmm次询问 每次询问给你l,r,a,bl,r,a,bl,r,a,b问你在[l,r][l,r][l,r]区间里面有多少种种种数c(XOR)a≤bc(XOR)a\leq bc(XOR)a≤b 解题思路: 这里我们对两个东西进行分块,首先是查询区间分块,然后按照块排序就是莫队了,但是值域怎么维护呢? 我们对值域进行分块把[1,1e5][1,1e5][1,1e5]的值域分成1e5\sqrt {1e5}1e5块,每个块统计里面的数的种类!! 但是如何查询异或满足上面条原创 2021-07-27 20:48:45 · 196 阅读 · 0 评论 -
主席树 | 莫队 ---- Codeforces Round #716 (Div. 2) D. Cut and Stick [主席树or莫队优化] 区间众数问题(静态)
题目链接 题目大意: 就是给你nnn个数,和q次询问,每次询问给你一个区间[l,r][l,r][l,r],问你把区间里面的数分配成最少多少块,使得块内出现最多次数的数不超过区间长度的一半(除不尽向上取整) 解题思路: 假设一个区间的众数是xxx个,那么不是众数的个数为rx=(r−l+1)−x;rx=(r-l+1)-x;rx=(r−l+1)−x; 1.如果区间的众数没超过一半,那么我们直接划分成一个区间就好了 因为如果众数都没超过一半,那么其他数那铁都超不了一半。 2.如果这个区间的众数超过了一半,那么我原创 2021-05-12 15:36:47 · 426 阅读 · 0 评论 -
莫队模板
#include <iostream> #include <cstdio> #include <stack> #include <sstream> #include <vector> #include <map> #include <cstring> #include <deque> #include <cmath> #include <iomanip> #include <queu原创 2020-07-11 13:28:53 · 111 阅读 · 0 评论