随笔分类 -  数据结构--莫队

摘要:题目 BSOJ1527&BZOJ4129 Haruna’s Breakfast 树上询问路径 \(mex\) 且带单点修改。 分析 首先区间 \(mex\) 问题可以使用莫队+值域分块或者回滚莫队解决。 这里带修的话就需要带修莫队+值域分块或者带修回滚莫队。 再加上这是树上,所以可以树分块过后莫队即 阅读全文
posted @ 2021-05-13 15:30 __Anchor 阅读(251) 评论(0) 推荐(0)
摘要:万年前的题解,可能会体验不好,慎看。 1.题意 P3709 大爷的字符串题 因为出题人语死早,原题意比较毒瘤,所以这里整个舒服点的题意: 静态询问区间众数对应的该众数个数 (至于为什么已经有daolao给出证明了) (注意答案要取负) 2.思路 由于是静态问题,且询问的是区间众数,所以很容易我们可以 阅读全文
posted @ 2021-05-07 19:35 __Anchor 阅读(41) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-05-07 13:59 __Anchor 阅读(5) 评论(0) 推荐(1)
摘要:题目 P5072 [Ynoi2015] 盼君勿忘 分析 莫队。 首先这道题有区间限制,数据范围也很明显,可以考虑离线莫队。 然后我们发现可以对于每一个数来算贡献,但是不好直接计算其出现次数,考虑转化。 发现其实可以转化成 \(2^{r-l+1}-2^{r-l-k+1}\) 次(全局的减掉不出现的,剩 阅读全文
posted @ 2021-05-07 00:19 __Anchor 阅读(56) 评论(0) 推荐(0)
摘要:题目 P5501 [LnOI2019]来者不拒,去者不追 分析 首先观察发现是一个区间,然后就可以想到莫队。 然后考虑怎么维护。 我们发现单点修改的贡献就是(假设是 \(r+1\),其中 \(num\) 是 \([l,r]\) 中比 \(x\) 小的 \(a[i]\) 的个数+1):\((num+1 阅读全文
posted @ 2021-04-29 20:54 __Anchor 阅读(53) 评论(0) 推荐(0)
摘要:题目 P5047 [Ynoi2019 模拟赛] Yuno loves sqrt technology II 静态多次询问区间逆序对。 分析 二次离线莫队模板。 莫队是显然的,然后考虑怎么维护端点的移动,直接维护该怎么做:求当前区间多少个数比 \(x\) 大,多少个数比 \(x\) 小,可以离散化后直 阅读全文
posted @ 2021-04-29 20:42 __Anchor 阅读(49) 评论(0) 推荐(0)
摘要:题意 P4887 【模板】莫队二次离线(第十四分块(前体)) 分析 莫队二次离线模板题。 首先观察发现,二进制中有 \(k\) 个 1 的这样的数在这道题范围中只有 \(C_{14}^{7}\) 大约 3000 个数。 然后我们就可以直接枚举一下把这些数都保存下来。 接下来我们考虑怎么做,这个区间限 阅读全文
posted @ 2021-04-29 20:29 __Anchor 阅读(60) 评论(0) 推荐(0)
摘要:题目 SP20644 ZQUERY - Zero Query 分析 回滚莫队模板题。 询问一个区间和为 0 显然可以想到前缀和,就直接可以转化成判断两点相等了。 然后就是模板题了,和模板题的唯一区别是这里要做一个前缀和,然后注意询问的左端点要 \(-1\) 。 代码 #include<bits/st 阅读全文
posted @ 2021-04-27 12:11 __Anchor 阅读(51) 评论(0) 推荐(0)
摘要:题目 P4867 Gty的二逼妹子序列 给定一个序列,多次询问一个区间当中值域在 \([a,b]\) 当中的值的种类数。 分析 莫队+值域分块。 首先很明显可以莫队来维护这个区间信息。 然后考虑怎么维护这个 值域在 \([a,b]\) 当中的值的种类数。 需要支持 \(O(1)\) 修改,\(O(\ 阅读全文
posted @ 2021-04-27 12:08 __Anchor 阅读(101) 评论(0) 推荐(0)
摘要:题目 CF522D Closest Equals 分析 回滚莫队/莫队+根号分治/线段树。 这道题和回滚莫队板题维护的信息正好相反,显然也是可以回滚莫队的。 但是会被卡,但是发现这个题目求的东西和区间数颜色的套路很像,于是可以考虑线段树/树状数组。 于是我们考虑离线询问,把询问挂到右端点上,然后就是 阅读全文
posted @ 2021-04-27 12:05 __Anchor 阅读(78) 评论(0) 推荐(0)
摘要:题目 P5355 [Ynoi2017] 由乃的玉米田 P3674 小清新人渣的本愿的加强版,多了除操作。 分析 莫队+\(bitset\)+根号分治 对于前三个操作,请看这里。 这里只讨论除该怎么解决。 首先我们莫队无法很好地维护,于是考虑另外的思路。 我们可以考虑直接枚举一个数作为商,然后查看是否 阅读全文
posted @ 2021-04-27 10:46 __Anchor 阅读(41) 评论(0) 推荐(1)
该文被密码保护。
posted @ 2021-04-27 09:37 __Anchor 阅读(0) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2021-04-27 00:14 __Anchor 阅读(0) 评论(0) 推荐(0)
摘要:题目 P4137 Rmq Problem / mex 给定一个序列,多次询问区间 \(mex\) 。 分析 主席树/莫队+值域分块/回滚莫队。 主席树 主席树做法很显然,直接每一个点新建一个树,然后询问就是在两个前缀主席树上差分二分就行了。 时间复杂度 \(O(nlogn)\) 莫队+值域分块 可以 阅读全文
posted @ 2021-04-26 23:29 __Anchor 阅读(121) 评论(0) 推荐(0)
摘要:题目 P5386 [Cnoi2019]数字游戏 给定一个序列,每次询问:给定 \(l,r,x,y\) ,问 \([l,r]\) 有多少个子区间满足其区间所有数使得 \(x\leq a_i \leq y\)。 \(n,q\leq 10^5\)。 分析 回滚莫队+序列分块。 首先这道题限制很多,但是可以 阅读全文
posted @ 2021-04-26 22:45 __Anchor 阅读(205) 评论(0) 推荐(1)
摘要:问题 P6072 『MdOI R1』Path 选择两条简单路径,满足没有重合的点,且边权异或和之和最大。 分析 首先我们考虑这个“没有重合的点”是个什么性质: 假设第一条路径的 \(lca\) 是 \(x\) ,那么一定是满足另外一条路径在 \(x\) 的子树外面(不在就交换,然后就在了)。 这是什 阅读全文
posted @ 2021-04-26 21:00 __Anchor 阅读(62) 评论(0) 推荐(0)
摘要:题目 AT1219 歴史の研究 分析 回滚莫队板子。 首先我们发现这个题可以离线,并且数据范围很小,还要维护和出现次数相关的信息,于是可以想到莫队。 然后我们发现这个最大值答案直接莫队的话在撤销的时候不好维护,于是我们可以考虑回滚莫队。 那么现在就很简单了,我们直接维护一下每个值的 \(cnt\) 阅读全文
posted @ 2021-04-26 20:35 __Anchor 阅读(44) 评论(0) 推荐(0)
摘要:题目 P5906 【模板】回滚莫队&不删除莫队 回滚莫队 回滚莫队是拿来干什么的呢?——在我们维护的数据不好删除,但是可以撤销,比较好添加的时候就可以使用回滚莫队来维护。 (同样反过来也是,但是好删除不好添加应该很少见吧。/fad) 那么具体怎么做的呢? 首先认清楚裸回滚莫队的效率:大常数 \(O( 阅读全文
posted @ 2021-04-26 20:31 __Anchor 阅读(65) 评论(0) 推荐(0)
摘要:题目 P4175 [CTSC2008]网络管理 树上单点修改,查询路径第 k 大。 解答 这道题做法很多,有 树剖+线段树+平衡树+二分 的,也有 树剖+可持久化线段树+树状数组 的,也有 可持久化线段树+差分+树状数组 的,还有就是 整体二分+树剖 的。 复杂度都是几个 \(log\) 的做法。 阅读全文
posted @ 2021-04-23 23:58 __Anchor 阅读(47) 评论(0) 推荐(0)
摘要:题意 SP32952 ADAFTBLL - Ada and Football 解答 一看到统计出现次数就能想到莫队。 于是树上带修莫队,树分块版莫队可以解决。 统计答案也很简单。 代码: #include <bits/stdc++.h> using namespace std; template < 阅读全文
posted @ 2021-04-23 23:49 __Anchor 阅读(52) 评论(0) 推荐(0)