正题

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P4137


题目大意

求区间mex。


解题思路

开始发现aia_iai​很大,开不了桶。但是转念一想,如果ans>n+1ans>n+1ans>n+1仅当前n+1个都有,可是最多只有n个,所以>n>n>n的都没用。
之后开个桶+莫队分块优化就行了。


code

#include<cstdio>
#include<cmath>
#include<algorithm>
#define N 200010
using namespace std;
struct node{int l,r,id,pos;
}a[N];
int n,m,w[N],l,r,now,id[N],t;
int cnt[N],ans[N];
bool cmp(node x,node y){return x.pos<y.pos||(x.pos==y.pos&&x.r<y.r);
}
void add(int x)
{if(w[x]>n) return;cnt[w[x]]++;while(cnt[now]) now++;
}
void del(int x)
{if(w[x]>n) return;cnt[w[x]]--;if(!cnt[w[x]]) now=min(now,w[x]);
}
int main()
{scanf("%d%d",&n,&m);t=sqrt(n);for(int i=1;i<=n;i++)scanf("%d",&w[i]);for(int i=1;i<=m;i++)scanf("%d%d",&a[i].l,&a[i].r),a[i].id=i,a[i].pos=(a[i].l-1)/t+1;sort(a+1,a+1+m,cmp);l=1,r=0;for(int i=1;i<=m;i++){while(l>a[i].l) add(--l);while(r<a[i].r) add(++r);while(l<a[i].l) del(l++);while(r>a[i].r) del(r--);ans[a[i].id]=now;//for(int j=0;j<=5;j++)//  printf("%d ",cnt[j]);//printf(":%d-%d\n",a[i].l,a[i].r);}for(int i=1;i<=m;i++)printf("%d\n",ans[i]);
}

P4137-Rmq Problem/mex【莫队,分块】相关推荐

  1. P4137 Rmq Problem / mex 主席树求mex

    传送门 文章目录 题意: 思路: 题意: 思路: 按照值建线段树,每个位置维护值出现的最后位置,让后可持久化一下,当查询[l,r][l,r][l,r]的时候,我们只需要在[1,r][1,r][1,r] ...

  2. 线段树/扫描线问卷调查反馈——Rmq Problem / mex(主席树),Boring Queries(二分+st表+主席树),Colorful Squares(扫描线)

    文章目录 Rmq Problem / mex Boring Queries Colorful Squares Rmq Problem / mex luogu4137 对aia_iai​建权值线段树 再 ...

  3. BZOJ3236[Ahoi2013]作业——莫队+树状数组/莫队+分块

    题目描述 输入 输出 样例输入 3 4 1 2 2 1 2 1 3 1 2 1 1 1 3 1 3 2 3 2 3 样例输出 2 2 1 1 3 2 2 1 提示 N=100000,M=1000000 ...

  4. 【CodeForces】700 D. Huffman Coding on Segment 哈夫曼树+莫队+分块

    [题目]D. Huffman Coding on Segment [题意]给定n个数字,m次询问区间[l,r]的数字的哈夫曼编码总长.1<=n,m,ai<=10^5. [算法]哈夫曼树+莫 ...

  5. bzoj4564: [Haoi2016]地图 仙人掌的圆方树 莫队 分块

    bzoj4564: [Haoi2016]地图 Description 一天rin来到了一个遥远的都市.这个都市有n个建筑,编号从1到n,其中市中心编号为1,这个都市有m条双向通 行的街道,每条街道连接 ...

  6. hdu_5085_Counting problem(莫队分块思想)

    题目连接:hdu_5085_Counting problem 题意:给你一个计算公式,然后给你一个区间,问这个区间内满足条件的数有多少个 题解:由于这个公式比较特殊,具有可加性,我们考虑讲一个数分为两 ...

  7. P3180-[HAOI2016]地图【圆方树,莫队,分块】

    正题 题目链接:https://www.luogu.com.cn/problem/P3180 题目大意 nnn个点mmm条边的一个仙人掌,有点权. QQQ次询问给出op,x,yop,x,yop,x,y ...

  8. P4867-Gty的二逼妹子序列【平衡结合,莫队,分块】

    正题 题目链接:https://www.luogu.com.cn/problem/P4867 题目大意 一个序列要求支持询问一个区间[l,r][l,r][l,r]内在[a,b][a,b][a,b]之间 ...

  9. 2021HDU多校第一场 zoto(莫队+分块)

    题意: 给你一个序列,q次询问,每次询问l-r的区间内数字大小为x-y之间内不重复的个,保证数据所有大小为1e5以内. 思路: 比赛的时候通过调整了一下分块的大小和各种优化,用莫队把题目给卡过去了,实 ...

最新文章

  1. java实现三级联动查询_Java框架SSH结合Easyui控件实现省市县三级联动示例解析
  2. (2) 假设字符串类似这样的aba和aab就相等,现在随便给你二组字符串,请编程比较他们看是否相等...
  3. ETL工具学习以及安装部署
  4. 经典排序算法(八)--选择排序Selection Sort
  5. 软件工程 - 个人博客系统 - 概要设计与详细设计文档
  6. BLE相关:低功耗蓝牙原理
  7. 别对“智能写作”太过情感依赖
  8. mod() SQL中取余的函数
  9. pytorch统计矩阵非0的个数_计算TensorFlow中非零元素的个数
  10. 哔哩哔哩 B站挂了!完了,5个9可靠性,超时了!
  11. windows 下使用nginx 实现负载均衡
  12. 基于python Flak谷歌自动化工具的爬虫(爬取疫情数据)
  13. 推荐系统3--FM和FFM
  14. winrar去掉烦人的广告 亲测有效
  15. 咸鱼软件应用—ubuntu切换中文
  16. linux三种网络模式
  17. 互联网晚报 | 9月16日 星期四 | 网易云音乐发布“村民证”;阿里社区电商品牌升级为“淘菜菜”;高德打车上线“实景上车点”
  18. canvas动画粒子效果分享,可以做背景,超级好看
  19. 什么是ros,为什么使用ros
  20. 供应链金融智能合约整理

热门文章

  1. abs函数的使用方法 oracle_SQL Server 常用函数使用方法
  2. php crypt mysql password_php使用crypt()函数进行加密
  3. 六元均匀直线阵的各元间距为_实验二 均匀直线阵
  4. python echo函数_python如何调用php文件中的函数详解
  5. github可以传java吗_如何在github上传本地项目代码(新手使用)----亲测使用
  6. python中定制类_python定制类__str__(实例详解)
  7. bp神经网络训练_数据分析模型6——神经网络基础(人工智能的底层模型)
  8. 高等数学上-赵立军-北京大学出版社-题解-练习5.8
  9. And Then There Was One POJ - 3517(变形约瑟夫环+规律)
  10. oracle多条件分组统计_多条件统计,就必须用Ifs系列函数,绝对的高能!