![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分块
文章平均质量分 69
是羊驼鸭
这个作者很懒,什么都没留下…
展开
-
2021牛客暑期多校训练营2 L WeChat Walk(分块)
题目链接:点击这里题目大意:给定 nnn 个人的关系网,有 mmm 个时刻,每个时刻有一个人的步数会增加题意:n个人在竞争微信步数,每个人有自己的朋友圈(可抽象成无向图),当一个人在某一时间段的微信步数在自己的朋友圈最多并且大于0时,他就是当前时间段的冠军。一共有q个时间段,每个时间段只有1个人的步数在增加,问每个人一共有多少时间段在自己朋友圈是冠军。题解:一个人是不是冠军只与他直接相连的点有关,因此可以想到分块,对度数大于m−−√的点和度数小于m−−√的点分别考虑。度数大于m−−√的点称为大点,最原创 2021-08-03 21:53:26 · 103 阅读 · 0 评论 -
hdu-6964 I love counting(莫队+分块)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列 {ci}\{c_i\}{ci} ,有 qqq 个询问,每次给出一个区间 (l,r)(l,r)(l,r) 和 a,ba,ba,b,求有多少个在该区间有多少种数字满足满足 c⨁a≤bc\bigoplus a\le bc⨁a≤b题目分析:我们可以用莫队离线问题,移动端点时对一个分过块的值域进行更新,来维护区间存在多少种数字。对于答案的查询,我们将 c⨁a≤bc\bigoplus a\le bc⨁a≤b 拆分为小于和等于两部分,对于等于部分我们原创 2021-08-03 20:53:05 · 164 阅读 · 0 评论 -
hdu-6959 zoto(莫队+分块)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列题目分析:我们可以对问题进行莫队分块,由于莫队对修改需要 O(1)O(1)O(1) 来进行操作,所以考虑用分块维护纵坐标:记一个桶 num[i]num[i]num[i] 表示当前区间纵坐标为 iii 的点有几个,sum[i]sum[i]sum[i] 表示第 iii 个块有几个不同的纵坐标,利用这两个数组可以做到 O(1)O(1)O(1) 修改区间加减操作 ,O(n)O(\sqrt n)O(n) 查询区间有多少个不同的数字。故总时间复杂度原创 2021-07-25 20:42:04 · 204 阅读 · 0 评论 -
hdu 6483 A Sequence Game(线段树+莫队)
题目链接:点击这里题目大意:ttt 组样例,每组样例给出一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an ,mmm 组询问,每组询问给出一对 l,rl,rl,r ,求区间 [l,r][l,r][l,r] 内的数字是否连续题目分析:区间是否连续可以转化为:区间最值之差是否小于等于区间的元素个数区间最值是典型的 RMQRMQRMQ 问题,我用了线段树维护 不用 STSTST 表是因为太久没写了忘记怎么写了区间元素个数就可以用普通莫队来维原创 2021-01-29 21:58:46 · 102 阅读 · 1 评论 -
CodeForces -940F Machine Learning(带修莫队+离散化)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an序列支持两种操作:询问你 [l,r][l,r][l,r] 中数字出现次数的 mexmexmex将一个位置的数字替换成另一个数字题目分析:具体细节见代码:...原创 2021-01-12 21:54:59 · 116 阅读 · 0 评论 -
P1903 [国家集训队]数颜色 / 维护队列 (带修莫队)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an序列支持两种操作:询问你 [l,r][l,r][l,r] 中共有几种不同的数字将一个位置的数字替换成另一个数字题目分析:莫队加上了修改操作只需在之前的莫队版本上加一个时间戳就可以了其排序有了些许变化(就是莫队多了一维):struct query{ int l,r,t,id; friend bool operator < (const原创 2021-01-06 18:32:00 · 104 阅读 · 4 评论 -
P3709 大爷的字符串题 (莫队)
题目链接:点击这里题目大意:给定一个长度为 nnn ,的序列 a1,a2,...ana_1,a_2,...a_na1,a2,...an ,有 mmm 次查询,每次查询给出 l,rl,rl,r ,求区间 [l,r][l,r][l,r] 最少被几个严格上升的序列覆盖题目分析:一个经典的转化:区间最少被几个严格上升的序列覆盖可以等价的看成区间众数的出现次数。因为覆盖区间的序列是严格上升的,所以每一个覆盖区间最多存在一个众数,所以上述转化得证离线区间计数问题考虑用莫队来做设 cnt[i]cnt[原创 2021-01-06 16:30:51 · 87 阅读 · 0 评论 -
CodeForces -617E XOR and Favorite Number(莫队)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an ,再给出一个数字 kkk , mmm 组询问每组询问给出 l,rl,rl,r ,求 ala_lal 到 ara_rar 中子序列异或和等于 kkk 的数目题目分析:我们考虑异或的性质对区间异或和可得:ai xor ai+1 xor...xor aja_i\ xor\ a_{i+1}\ xor...xor\ a_原创 2021-01-02 18:59:38 · 112 阅读 · 0 评论 -
SP3267 DQUERY - D-query(莫队)
题目链接:点击这里题目大意:给定一个长度为 nnn 的序列 a1,a2,...,ana_1,a_2,...,a_na1,a2,...,an ,有 qqq 个询问每次询问给出一组 l,rl,rl,r ,求 ala_lal 到 ara_rar 之间有多少种不同的数字题目分析:离线区间询问问题,莫队的模板题,这里记录一下莫队的时间复杂度证明和几个常数优化技巧时间复杂度:莫队是提前把所有的查询区间存下来,按左端点所在的块编号为第一优先级,右端点大小为第二优先级进行排序的其排序复杂度为 O(q原创 2021-01-02 16:03:44 · 128 阅读 · 1 评论 -
CodeForces -1207F Remainder Problem(分块)
题目链接:点击这里题目大意:给一个长度为 5e55e55e5 的序列,初始是序列全为 000 ,先给出两种操作:1 x y1\ x\ y1 x y 将下标为 xxx 的位置的值加上 yyy2 x y2\ x\ y2 x y 询问所有下标模 xxx 的结果为 yyy 的位置的值之和题目分析:真是好人有好报,做题帮一个朋友改了一个分块今天就又遇见分块的题了,特地来记录一下如果暴力做的话时间复杂度显然为 O(n2)O原创 2020-12-22 22:04:48 · 102 阅读 · 1 评论