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

主席树——即可持久化的线段树。
http://blog.csdn.net/sprintfwater/article/details/9162041
我是从这里学的,因为人傻,还有点晕
#include<cstdio>
const int N=500100;
int temp,root[N],ls[N*20],rs[N*20],sum[N*20],n,m,sz,l,r;
void build(int l,int r,int x,int &y,int v){y=++sz;int mid=(l+r)>>1;sum[y]=sum[x]+1;//这里存的是以y为根的线段树上1--n中有多少个数if (l==r) return;//一定要修改之后再退出,1WAls[y]=ls[x];rs[y]=rs[x];if (v<=mid) build(l,mid,ls[x],ls[y],v);else build(mid+1,r,rs[x],rs[y],v);}int query(int L,int R){int l=1,r=n,mid,x,y,tmp=(R-L+1)>>1;x=root[L-1];y=root[R];while(l!=r){if(sum[y]-sum[x]<=tmp)return 0;mid=(l+r)>>1;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+1;x=rs[x];y=rs[y];}else return 0;}return l;
}int main(){scanf("%d%d",&n,&m);for (int i=1;i<=n;i++){int x;scanf("%d",&x);build(1,n,root[i-1],root[i],x);}for (int i=1;i<=m;i++){int l,r;scanf("%d%d",&l,&r);temp=(r-l+1)/2; printf("%d\n",query(l,r));}
} 

转载于:https://www.cnblogs.com/wuminyan/p/5143515.html

【BZOJ3524】 [Poi2014]Couriers相关推荐

  1. 【BZOJ3831】[Poi2014]Little Bird 单调队列

    [BZOJ3831][Poi2014]Little Bird Description In the Byteotian Line Forest there are   trees in a row. ...

  2. 【BZOJ3524】Couriers,第一次的主席树

    传送门(权限) 题面 3524: [Poi2014]Couriers Time Limit: 20 Sec Memory Limit: 128 MB Submit: 1449 Solved: 508 ...

  3. 【bzoj3524】【Poi2014】【Couriers】可持久化线段树(主席树)水题

    [pixiv] https://www.pixiv.net/member_illust.php?mode=medium&illust_id=62485671 向大(hei)佬(e)势力学(di ...

  4. 主席树【bzoj3524(p3567)】[POI2014]Couriers

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

  5. 【bzoj3524】Couriers——主席树

    Description 给一个长度为n的序列a.1≤a[i]≤n(n,m<=500000). m组询问,每次询问一个区间[l,r],是否存在一个数在[l,r]中出现的次数大于(r-l+1)/2. ...

  6. BZOJ 3524: [Poi2014]Couriers【主席树】

    3524: [Poi2014]Couriers [题目描述] 传送门 [题解] 主席树的裸题,要找出现次数大于一半的,那么他肯定出现在当前的左子树或右子树中,就这样查找就可以了. 代码如下 #incl ...

  7. 【CentOS】利用Kubeadm部署Kubernetes (K8s)

    [CentOS]利用Kubeadm部署Kubernetes (K8s)[阅读时间:约10分钟] 一.概述 二.系统环境&项目介绍 1.系统环境 2.项目的任务要求 三.具体实验流程 1 系统准 ...

  8. 【Spring】框架简介

    [Spring]框架简介 Spring是什么 Spring是分层的Java SE/EE应用full-stack轻量级开源框架,以IOC(Inverse Of Control:反转控制)和AOP(Asp ...

  9. 【C#】类——里式转换

    类是由面对对象程序设计中产生的,在面向结构的程序设计例如C语言中是没有类这个概念的!C语言中有传值调用和传址调用的两种方式!在c语言中,主方法调用方法,通过传递参数等完成一些操作,其中比较常用的的数据 ...

最新文章

  1. Training的第六天
  2. android 为什么fragment在调用hide方法后没有生效_Android 多 Fragment 切换优化
  3. 怎样成为优秀的软件模型设计者
  4. datetime类型怎么输入_数据库之mysql的基础类型
  5. 信息安全“拷问”智慧城市建设 如何解决?
  6. 七类***各有“黑招”
  7. 专用计算机国产化替代工作方案,倪光南再谈核心技术自主可控 列举国产替代方案...
  8. python表格绘制斜线表头_Excel表格绘制斜线表头的三种方法,懂得这些技巧就够了...
  9. 半导体智能制造系统之 APS高级计划和调度
  10. html中橘色代码,javascript HTML+CSS实现经典橙色导航菜单
  11. image target behaviour 和image target的关系_Behance大神为你揭秘任天堂、Target的UI为何这样设计?...
  12. GHGL项目-其他问题锦集
  13. Windows slmgr.vbs 命令详解
  14. ubuntu12.04 显卡 散热
  15. 情到深处人孤独 爱至穷时尽沧桑
  16. uni-app中使用rich-text如何添加样式控制富文本里面的内容
  17. 锐捷多网卡问题破解-----过河拆桥解决完整性校验
  18. linux基础命令归纳(可读性高,易上手)
  19. 经验分享|原来这些图灵奖巨匠就藏在身边
  20. 《天池龙珠 - SQL训练营》02.SQL基础:查询与排序-select、运算符、聚合分组查询等

热门文章

  1. 蓝桥杯第六届国赛JAVA真题----表格计算
  2. 开发springboot项目,遇到的一些问题总结
  3. 梦幻西游手游服务器维护公告,梦幻西游手游3月7日全区全服维护更新公告
  4. zemax设计35mm镜头_ZEMAX怎样优化MTF?
  5. html垂直边距,html – Styling Bootstrap的btn-group-justified,添加边距和垂直尺寸
  6. python拆分excel的sheet为单文件_pandas处理excel一个sheet拆分为多个sheet
  7. python 参数个数 同名函数_Python——函数的参数
  8. android edittext 手机号码,Android中EditText中的电话号码格式
  9. 投递简历得不到回复,并不是你的简历不好,可能是这个原因
  10. 互联网日报 | 网易严选宣布退出双十一大战;抖音企业号数量突破500万;大兴机场首推外卖直达登机口...