首页 > 其他分享 >正常莫队

正常莫队

时间:2024-04-23 14:59:40浏览次数:35  
标签:10 le 复杂度 正常 100000 端点 莫队

简介:原汁原味。

区间不同数字数量

\(N \le 10^5, Q \le 10^5, A_i \le 10^9\)。

我们当然可以暴力,时间复杂度 \(O(QN)\)。

Improvment 1

我们离散化,然后区间 \([l, r]\) 可以快速扩展到 \([l - 1, r], [l + 1, r], [l, r - 1], [l, r + 1]\)。维护扩展中新来的信息。具体怎么从某个询问转移到另一个吗......暴力扩展呗。

数据可以这样出:

100000 100000
...
1 1
100000 100000
1 1
100000 100000
1 1
100000 100000
1 1
100000 100000
1 1
100000 100000
...

一样卡到 \(O(NQ)\),但是这个优化很有应用前景。

Improvment 2

其实我们只需要按照这样的方法排序,就不会 T 了:)

将序列分块,按照左端点的块从小到大为第一关键字,右端点从小到大为第二关键字。

这就是莫队......

莫队的时间复杂度整个来看很难分析,不妨分为左端点和右端点分别分析。

设块长为 \(B\)。

左端点

每一个询问会移动至多 \(O(B)\) 次,时间复杂度 \(O(QB)\)。

右端点

每一块会移动 \(O(N)\) 次,总共 \(O(NB)\)。

加起来得到 \(O((N + Q)B)\)。

一般的莫队,都是推一推加入/删除会造成什么影响(注意两个操作有时候会西掉一个,有时候还要在数据结构上操作,但这不在这篇文章的范围内),具体实现都大差不差。

标签:10,le,复杂度,正常,100000,端点,莫队
From: https://www.cnblogs.com/hhc0001deljbk/p/18143601

相关文章

  • 莫队-目录
    这个算法有多个变体。如果你只需要某些变体,点开这些变体的页面即可。这个算法有多个变体。如果你只需要某些变体,点开这些变体的页面即可。这个算法有多个变体。如果你只需要某些变体,点开这些变体的页面即可。普通莫队......
  • 分块莫队——维护队列
    题目描述样例输入2312Q12R12Q12样例输出21题目分析首先它是一个离线莫队(在线超时QAQ)离线首先存下它所有的询问和修改,分别存,询问要存下是第几次,以便后续输出,还要存下时间是第几个命令,比较询问和修改的时间,相应的变换颜色,最后整体输出#include<bits/stdc++.h>......
  • P4168 [Violet] 蒲公英 (莫队的强制在线)
    前言当个乐子看就行所用时间不如分块正解快虽然在线莫队实质也是分块[Violet]蒲公英题目背景亲爱的哥哥:你在那个城市里面过得好吗?我在家里面最近很开心呢。昨天晚上奶奶给我讲了那个叫「绝望」的大坏蛋的故事的说!它把人们的房子和田地搞坏,还有好多小朋友也被它杀掉了。我......
  • [BZOJ4358]permu树上莫队
    先放代码晚上补(争取)#include<bits/stdc++.h>#definefo(x,y,z)for(int(x)=(y);(x)<=(z);(x)++)#definefu(x,y,z)for(int(x)=(y);(x)>=(z);(x)--)typedeflonglongll;usingnamespacestd;inlineintqr(){ charch=getchar();intx=0,f=1; for(;ch<&......
  • 见鬼了!我家的 WiFi 只有下雨天才能正常使用...
    这是作者大学时期在家里遇到的一个非常奇怪的网络问题,作者的父亲是一名经验丰富的网络工程师,他们家里使用了一个复杂的网络设置,通过Wi-Fi桥接的方式,将父亲公司的高速商业网络连接到家中。但是有一天,作者发现家里的Wi-Fi只有在下雨时才能正常工作。。。事情发生在十多年前,那......
  • C117 莫队配合 bitset P4688 [Ynoi2016] 掉进兔子洞
    视频链接:C117莫队配合bitsetP4688[Ynoi2016]掉进兔子洞_哔哩哔哩_bilibili   LuoguP4688[Ynoi2016]掉进兔子洞//莫队配合bitsetO(n*sqrt(n))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<bitset>usin......
  • 莫队
    莫队介绍利用分块进行处理的离线算法;时间复杂度普遍为\(O(n\sqrt{n})\);但会被卡实现思路对答案的查询在已知区间的情况下暴力寻找的目标区间的贡献;对于已知当前\([L,R]\)区间,一共有\(4\)种情况:加上当前区间左边一格的贡献:Add(--L);先将当前的下标......
  • 应用程序无法正常启动(0xc0150002)问题思路
    应用程序无法正常启动(0xc0150002)的解决思路背景介绍一测试朋友,因为重装了操作系统,然后之前的工具突然无法使用了。现象现象1现象2解决现象1很显然,缺少运行库。你如果安装了visualstudio,那么其安装目录下xxx\MicrosoftVisualStudio\2019\Professional\VC\Re......
  • 莫队
    简介莫队是一种离线求区间信息的算法,可以做到\(O((N+Q)\cdot\sqrt{N})\)。莫队中使用了分块的思想。首先考虑一个问题:给定一个长度为\(N\)序列\(A\)和\(Q\)次询问,每次询问查询区间\([X_i,Y_i]\)的和。(请先忘掉前缀和、线段树、树状数组什么的)比如以下数据:54322......
  • 莫队
    莫队是一种对于询问做转移的算法。对于可以离线,运算可逆的题目。如果按题目给的顺序操作,可以被以下数据hack11nn11nn11nn11nn...时间复杂度\(O(n^2)\)。我们可以通过某一些排序来降低时间复杂度。首先,把这个序列分成\(\sqrt{n}\)块,每一块按右......