这帖子本来是教练为了给低年级学生分享经验而让我写的学习经历,不过等我退役之后可能就变成回忆录了。 初三 WC 前:上了正睿的线上课程,练了一些模拟赛,同时也正在学文化课。 然后,莫名奇妙1膜考了全校前二 + thuwc拿了省队一本。开启了我之前从未想过的船新的停课生活。 WC 后:去杭二参加集训。 ...
分类:
其他好文 时间:
2020-06-12 22:58:55
阅读次数:
121
莫队: 离线后通过对询问合理排序使得复杂度降低一个$\sqrt(n)$。(本身并不需要用块维护东西) 一般情况下分块大小为$\sqrt(n)$,以左端点所在块为第一关键字,右端点为第二关键字排序。 然后依次暴力处理询问即可。 带修莫队: 一般情况下分块大小为$n^{\frac{2}{3}}$,以左端 ...
分类:
其他好文 时间:
2020-06-08 12:52:59
阅读次数:
62
给一个数列,每次询问一个区间内有没有一个数出现次数超过一半 #include<cmath> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int ...
分类:
其他好文 时间:
2020-05-26 15:06:14
阅读次数:
52
"Link" 题目大意:单点修改,每次询问一个区间的所有颜色出现次数的$\text{Mex}.$ 例如,区间中三种颜色分别出现了$2,2,3$次,又因为其他颜色出现次数一定是$0$,所以这里的答案是$1.$ $\text{Solution:}$ 这是带修莫队的一道题。 观察到,我们可以$O(1)$来 ...
分类:
系统相关 时间:
2020-05-23 13:31:27
阅读次数:
66
这个技巧我要记住,免得忘了。 回滚莫队用于解决插入难,删除易或者删除难,插入易的问题。 需要一个数据结构支持插入,撤销,就是希望里的“可回退化数据结构”。 对于删除难,插入易的问题,在排序的时候,第一个关键字是左端点所在块升序,第二个关键字是右端点升序。 每次延展右端点(这是单调的),记录答案放在变 ...
分类:
其他好文 时间:
2020-05-22 16:54:05
阅读次数:
54
#include <bits/stdc++.h> #define N 300005 #define ll long long using namespace std; int n,m,tot,opcnt,qcnt,B,now; int a[N],A[N],output[N],cnt[N],mex[N ...
分类:
系统相关 时间:
2020-05-21 13:26:37
阅读次数:
57
https://www.luogu.com.cn/problem/P4168 https://loj.ac/problem/6285 区间众数查询。 解法一 莫队,但是蒲公英有加密操作。 解法二 分块。 离散化+块内二分。 将每一个数出现的位置塞进一个 vector,排序,在面对整块时选择一手二分。 ...
分类:
其他好文 时间:
2020-05-16 18:31:16
阅读次数:
52
彩色盒子 sol:彩色盒子可以用分块来做(有题解),也可以用莫队来做,带修改操作。如颜色:1 3 2 5 7 8 2 4 6Q:[1,9] //询问区间1~9的颜色数M:3 4 //将第三个位置的颜色改为颜色4M:1 5Q:[1,3]若用莫队来做,按查询排序,依次得到区间[1,3],[1,9]。但, ...
分类:
其他好文 时间:
2020-05-14 13:47:09
阅读次数:
70
【luogu P3901】数列找不同 【题意】给一整数序列,Q个询问,询问区间内数字是否互不相同 1 #include<cstdio> 2 #include<cmath> 3 #include<algorithm> 4 #define ll long long 5 using namespace s ...
分类:
编程语言 时间:
2020-05-14 01:29:17
阅读次数:
70
莫队是一种暴力数据结构。 先给一道例题: "SP3267 DQUERY D query" 我们很容易想到以一段区间为基础向内伸缩或向外扩展并不断更新答案。 然而我们如果按题目给出的询问顺序更新的话,很容易被卡成 $\mathcal O(n^2)$ ,这就需要我们给这些询问一个顺序,使得移动次数最小。 ...
分类:
其他好文 时间:
2020-05-04 15:29:16
阅读次数:
52