首页 > 其他分享 >莫队

莫队

时间:2023-11-15 12:14:13浏览次数:23  
标签:用莫队 复杂度 答案 区间 mathcal 莫队

普通莫队由莫涛总结并实现。可以在 \(\mathcal{O(n\sqrt{n})}\) 的时间复杂度内解决不带修的区间问题。

那什么样的题才能用莫队呢?

最重要的特征是知道区间 \([l,r]\) 的答案,可以 \(\mathcal{O(1)}\) 得知 \([l-1,r]\),\([l,r-1]\),\([l+1,r]\),\([l,r+1]\) 区间的答案。

先来看一个例子:

给出序列 \(\{a_n\}\),\(m\) 次询问,每次求区间 \([l_i,r_i]\) 的和。

这道题固然可以用前缀和写,但这里只讨论莫队:

标签:用莫队,复杂度,答案,区间,mathcal,莫队
From: https://www.cnblogs.com/ydq1101/p/17833527.html

相关文章

  • 树套树板子,但是带修莫队+值域分块
    \(\text{Link-LuoguBlog}\)原题传送门没啥重要的事情,就是终于过了这题非常开心,发现自己是莫队的时间戳部分写错了调了114514年我也只能说是十分趣味。以及今天深刻地认识到了带修莫队应该len=pow(n,0.66);。就是裸的带修莫队+值域分块,就不说了,直接放代码了昂。如果有人......
  • 莫队的时间复杂度?
    普通莫队的时间复杂度分析:设块长为\(B\),\(l\)的移动次数是\(O(mB)\)的,\(r\)的移动次数是\(O(\frac{n}{B}n)\)的,所以总时间复杂度为\(O(mB+\frac{n}{B}n)\),考虑时间复杂度的平衡,取\(B=\frac{n}{\sqrt{m}}\),则总时间复杂度为\(O(n\sqrt{m})\)。带修改的莫队的时间复杂度......
  • 算法笔记(4)莫队算法入门
    原发表于我的博客前言本来想学完回滚莫队、树上莫队、二离莫队之后一起写一个博客,但是一直学不会/kk,只好把已会的普通莫队和带修莫队写了(以后会补上的)普通莫队莫队——优雅的暴力莫队算法的引入例题:给定一个数列和若干询问,每次询问询问一段区间内不同种类数字的个数。暴力......
  • 【GJOI 2023.10.17 T4】 莫队
    莫队今天,接触信息学不久的小A刚刚学习了莫队。莫队可以解决一类难以合并,但方便插入的信息维护。比如,给定一个序列,支持单点修改,每次询问一个区间出现了多少种数字。再比如,给定一个序列,支持单点修改,每次询问区间众数。诸如此类。小A觉得这样的情况太平凡了。于是,他定义了一个......
  • 树上莫队小技巧
    前言联考有一道树上莫队一眼题,但是我还没学过树上莫队啊!!!于是开始口胡,这个东西好像是说这个东西把树拍成欧拉序,端点一移动,做完了!开始写,一下子过大样例,没有细节!然后在网上一看树上莫队的博客:大家怎么都求了LCA?为什么要分讨有祖先后代关系的情况?坏了,一定是我做法假了!!!然后往SPOJ......
  • P9233 [蓝桥杯 2023 省 A] 颜色平衡树 (dfs序 莫队)
    P9233[蓝桥杯2023省A]颜色平衡树(dfs序莫队)莫队原理:https://zhuanlan.zhihu.com/p/115243708对于树上的每个结点,按照dfs序打上时间戳,这样就可以把每一个结点对应的子树的答案转化为一个区间的答案。将子树询问离线下来变成\(n\)个区间查询。用\(cnt\)数组维护颜色......
  • 【离线算法】- 莫队
    莫队简介莫队是可以支持多次询问区间\([l,r]\)的信息的离线算法。通过将询问范围以块长为\(\sqrtn\)分块后按端点所属分块排序的方式优化复杂度。普通莫队定义普通莫队针对的是序列上的区间询问。常见形式为:对于一个长度为\(n\)的序列,提出\(m\)次询问,每次询问区间......
  • 树上莫队
    20231012树上莫队由于联考考到,又直接爆0,于是来学习。树上莫队——把莫队放到树上。但我是真的不知道把莫队怎么放到树上。。。于是我们考虑一个东西叫做欧拉序,就是再dfs的时候在进栈和出栈的地方都记录一下。而在区间查询的时候,我们只对区间出现一次的数统计答案,用一个......
  • 二次离线莫队笔记
    前言莫队可以解决许多其他数据结构无法完成的问题,正在很多其他问题上也可以拿部分分甚至满分,只因其复杂度为小常数\(O(n\sqrtn\timesk)\)其中\(k\)是单次扩张以及收缩的复杂度,而二离莫队可以在答案可差分的情况下达到\(O(n\sqrtn+n\timesk)\)起源lxl把二次离线莫......
  • 在线莫队
    我竟然独立发现了这个东西...考虑普通的莫队就是让区间加元素操作尽可能少,那么对于所谓的在线莫队,我们可以先跑出一些标准区间的值,然后在对他进行拓展,最终得出结果。我们均匀的取出\(B\)个关键点,然后对于两两关键点算出答案。那么我们拓展区间时,最多要拓展\(O(\frac{n^2}{B})......