Description

给一个长度为n的序列a。1≤a[i]≤n。
m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2。如果存在,输出这个数,否则输出0。

Input

第一行两个数n,m。
第二行n个数,a[i]。
接下来m行,每行两个数l,r,表示询问[l,r]这个区间。

Output

m行,每行对应一个答案。

Sample Input

7 5
1 1 3 2 3 4 3
1 3
1 4
3 7
1 7
6 6

Sample Output

1
0
3
0
4

HINT

【数据范围】

n,m≤500000

/*
借此写一写对于主席树的认识。
我们在做数据结构题目的过程中可能会用到多次更新前的某一个状态,所以我们要想一个办法储存下每一个时刻的树。
暴力做n棵树?这样的时间和空间都会华丽的GG。
我们会发现对于一个状态,相对于他前一个状态的改变是很少的,那是不是意味着可以多加几个点就可以,而不是暴力建一棵新树。
答案是肯定的。我们再加点的过程中只要利用前一棵树的信息和新状态的信息,在创立几个新点就行了。 PS:我在一个问题上搞了好几个小时,关于新树的大小和原来的树是否相同的问题,貌似很明显是相同的,然而我傻,以为不相同,导致mengbi了很长时间。
*/
#include<cstdio>
#include<iostream>
#define N 500010
using namespace std;
int root[N],ls[N*],rs[N*],sum[N*],cnt,n,m;
void add(int pre,int &k,int l,int r,int v){
k=++cnt;
sum[k]=sum[pre]+;
if(l==r) return;
ls[k]=ls[pre];rs[k]=rs[pre];
int mid=l+r>>;
if(v<=mid) add(ls[pre],ls[k],l,mid,v);
else add(rs[pre],rs[k],mid+,r,v);
}
int query(int x,int y){//两个时刻
int l=,r=n,tmp=(y-x+)/;
x=root[x-];y=root[y];
while(l!=r){
if(sum[y]-sum[x]<=tmp)return ;
int mid=l+r>>;
if(sum[ls[y]]-sum[ls[x]]>tmp){
r=mid;x=ls[x];y=ls[y];
}
else if(sum[rs[y]]-sum[rs[x]]>tmp){
l=mid+;x=rs[x];y=rs[y];
}
else return ;
}
return l;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
int x;scanf("%d",&x);
add(root[i-],root[i],,n,x);
}
for(int i=;i<=m;i++){
int x,y;scanf("%d%d",&x,&y);
printf("%d\n",query(x,y));
}
return ;
}

最新文章

  1. AD域-让共享目录只显示用户有权限访问的文件夹
  2. dede 优化打开速度
  3. ShineTime - 带有 CSS3 闪亮特效的缩略图相册
  4. 【leetcode】 Letter Combinations of a Phone Number(middle)
  5. 【CodeVS】 p1696 奇怪的函数
  6. php中 -&gt; 和 =&gt; 和 :: 的用法 以及 self 和 $this 的用法
  7. 一千行MySQL学习笔记
  8. Linux内核调试方法总结【转】
  9. js调用ajax
  10. 二维码简单Demo
  11. SQL查询重复记录
  12. ssh的相关实验
  13. 团队作业4——第一次项目冲刺(Alpha版本)
  14. Java多线程Runnable与Callable区别与拓展
  15. Beta冲刺NO.7
  16. SVN---搭建幸福之家
  17. Python基础(time模块,datetime模块)
  18. STL整理之map
  19. k8s集群搭建指南
  20. LeetCode【第1题】Two Sum

热门文章

  1. node入门(三)——gulp运用实例
  2. spring boot druid mybatis多数据源
  3. LN : leetcode 516 Longest Palindromic Subsequence
  4. JVM内存各个区域分工简单介绍
  5. iOS 蒲公英第三方打包平台
  6. Android(java)学习笔记177: 服务(service)之音乐播放器
  7. swift 泛型的类型约束
  8. docker使用阿里云镜像加速器(属于自己的专属加速器)
  9. 世平信息(T 面试)
  10. Image Is Everything LA2995