区间mex

问题

给定序列\({a_i}\), 每次询问给出\(l\), \(r\), 询问 \(\text{mex} \{a_i\}, i \in \{l, l+1, \cdots r\}\)

解法 (在线)

对于每个元素, 用 \(v_i\) 表示它最后一次出现的位置.

考虑到是区间询问, 使用主席树维护 \(v_i\) .

那么答案就是: 第 \(r\) 棵线段树上, 最小的 \(v_i < l\) 的值. 线段树上二分即可.

或者可以离线询问, 对 \(r\) 排序, 然后用线段树维护.

区间元素种数

问题

给定序列\({a_i}\), 每次询问给出\(l\), \(r\), 询问 \(\text{card} \{a_i\}, i \in \{l, l+1, \cdots r\}\), 其中\(\text{card}(S)\)表示集合\(S\)的元素个数. (相同元素记做一次)

解法

莫队 (离线)

不用说了吧... 板子题, 参考hh的项链.

主席树 (在线)

类似区间mex, 用 \(v_i\) 表示它最后一次出现的位置, 用主席树维护.

答案就是: 第 \(r\) 棵线段树上, \(l \le v_i \le r\) 的值的个数. 这显然是区间求和.

同样, 可以离线询问, 对 \(r\) 排序, 然后用树状数组/线段树维护.

[模板] 区间mex && 区间元素种数的更多相关文章

  1. 「模板」 FHQ_Treap 区间翻转

    「模板」 FHQ_Treap 区间翻转 没有旋转的 Treap 实现区间操作的功能,很好理解,也很好写,只是速度不算太快. 对于要翻转的区间,把整棵 Treap(存有区间 \([1,n]\) 的信息) ...

  2. YTU 2986: 删除区间内的元素(线性表)

    2986: 删除区间内的元素(线性表) 时间限制: 1 Sec  内存限制: 2 MB 提交: 8  解决: 3 题目描述 若一个线性表L采用顺序存储结构,其中元素都为整数.设计一个算法,删除元素值在 ...

  3. 「模板」 线段树——区间乘 && 区间加 && 区间求和

    「模板」 线段树--区间乘 && 区间加 && 区间求和 原来的代码太恶心了,重贴一遍. #include <cstdio> int n,m; long l ...

  4. LOJ #6284. 数列分块入门 8-分块(区间查询等于一个数c的元素,并将这个区间的所有元素改为c)

    #6284. 数列分块入门 8 内存限制:256 MiB时间限制:500 ms标准输入输出 题目类型:传统评测方式:文本比较 上传者: hzwer 提交提交记录统计测试数据讨论 2   题目描述 给出 ...

  5. poj3468(线段树区间更新&区间求和模板)

    题目链接: http://poj.org/problem?id=3468 题意: 输入 n, m表初始有 n 个数, 接下来 m 行输入, Q x y 表示询问区间 [x, y]的和: C x y z ...

  6. 线段树 区间开方区间求和 & 区间赋值、加、查询

    本文同步发表于 https://www.zybuluo.com/Gary-Ying/note/1288518 线段树的小应用 -- 维护区间开方区间求和 题目传送门 约定: sum(i,j) 表示区间 ...

  7. hdu 1698 线段树 区间更新 区间求和

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  8. Codeforces Round #448 (Div. 2) B. XK Segments【二分搜索/排序/查找合法的数在哪些不同区间的区间数目】

    B. XK Segments time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  9. hdu 3473 区间条件极值 - 区间 差的绝对值 之和的最小

    题目传送门//res tp hdu 目的 对长度为n的区间,给定q个子区间,求一x,使得区间内所有元素与x的差的绝对值之和最小. 多测. n 1e5 q 1e5 ai [1,1e9] (i∈[1,n] ...

随机推荐

  1. sublime实现背景透明化

    预览 老司机们就不要吐槽背景图了 实现方法 首先下载插件,直接打包下载zip即可 地址:https://github.com/vhanla/SublimeTextTrans 下载完成后解压到packa ...

  2. arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  3. SuperMap GIS资料-----云与Web端技术资料集锦

    转自:http://blog.csdn.net/supermapsupport/article/details/70254484 产品白皮书 iServer产品  教学视频  许可说明  安装部署   ...

  4. 一个MySQL视图的优化过程

    1.需要优化的sql 最近做一个基于.net mvc和MySQL的仓储系统的优化工作,遇到了一个执行特别慢的SQL语句,经过一番折腾,终于搞定啦,分享一下过程.问题就是下面这个家伙: create o ...

  5. (简单)华为荣耀4A SCL-TL00的usb调试模式在哪里打开的方法

    就在我们使用PC通过数据线连接上安卓手机的时候,如果手机没有开启Usb调试模式,PC则没办法成功检测到我们的手机,有时候,我们使用的一些功能强大的App好比之前我们使用的一个App引号精灵,老版本就需 ...

  6. linux(centos7) 常用命令和快捷键 持续验证更新中...

    1.文件和目录cd 进入目录示例:cd /home 进入home目录    cd..    返回上一级目录cd../..    返回上两级目录cd -    返回上次所在目录cd ~    返回根目录 ...

  7. net view 提示6118错误 解决方法。

    1.win+R ,输入services.msc 开启服务:Server ,WorkStation,computer Browser 2.如果你的电脑没有computer Browser服务,win+R ...

  8. SQL Server实际执行计划COST"欺骗"案例

    有个系统,昨天Support人员发布了相关升级脚本后,今天发现系统中有个功能不能正常使用了,直接报超时了(Timeout expired)的错误.定位到相关相关存储过程后,然后在优化分析的过程中,又遇 ...

  9. Nginx+uWSGI启动Django

    在之前的几篇博客中对Django的功能做了初步实践,这里链接贴一下: Django的安装和启动 Django之--网页展示Hello World! Django之--通过MVC架构的html模板展示H ...

  10. 什么是TLB?

    TLB:Translation Lookaside Buffer. 根据功能可以译为快表,直译可以翻译为旁路转换缓冲,也可以把它理解成页表缓冲.里面存放的是一些页表文件(虚拟地址到物理地址的转换表). ...