[BZOJ3524][Poi2014]Couriers(主席树)
来源:互联网 发布:ssh 22端口拒绝 编辑:程序博客网 时间:2024/06/11 01:54
=== ===
这里放传送门
=== ===
题解
区间内符合要求的数只可能有一个,并且如果存在这个数,那么第
代码
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,m,r[500010],tot,b[500010];struct tree{ int l,r,val;}t[10000000];void update(int i){ t[i].val=t[t[i].l].val+t[t[i].r].val;}void insert(int rt,int &i,int l,int r,int x){ i=++tot;t[i]=t[rt]; t[i].val++; if (l==r) return; int mid=(l+r)>>1; if (x<=mid) insert(t[rt].l,t[i].l,l,mid,x); else insert(t[rt].r,t[i].r,mid+1,r,x); update(i);}int asknum(int i,int j,int l,int r,int k){ if (l==r) return l;//查询区间内排名为k的数 int mid=(l+r)>>1,tmp=0; tmp=t[t[j].l].val-t[t[i].l].val; if (tmp>=k) return asknum(t[i].l,t[j].l,l,mid,k); else return asknum(t[i].r,t[j].r,mid+1,r,k-tmp);}int askval(int i,int j,int l,int r,int x){ if (l==r) return t[j].val-t[i].val;//查询这个数在区间内出现了几次 int mid=(l+r)>>1; if (x<=mid) return askval(t[i].l,t[j].l,l,mid,x); else return askval(t[i].r,t[j].r,mid+1,r,x);}int main(){ scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) scanf("%d",&b[i]); for (int i=1;i<=n;i++) insert(r[i-1],r[i],1,n,b[i]); for (int i=1;i<=m;i++){ int L,R,pos,k; scanf("%d%d",&L,&R); pos=(R-L+1)/2+1; k=asknum(r[L-1],r[R],1,n,pos); if (askval(r[L-1],r[R],1,n,k)>=pos) printf("%d\n",k); else printf("0\n"); } return 0;}
0 0
- [BZOJ3524][Poi2014]Couriers(主席树)
- [BZOJ3524][Poi2014]Couriers(主席树)
- bzoj3524: [Poi2014]Couriers(主席树)
- [BZOJ3524][Poi2014]Couriers(主席树)
- 【BZOJ3524】[Poi2014]Couriers【主席树】
- [bzoj3524][Poi2014]Couriers 主席树
- 【主席树】BZOJ3524 [Poi2014]Couriers
- bzoj3524 [Poi2014]Couriers 主席树
- bzoj3524 [Poi2014]Couriers(主席树查询第k小)
- 【主席树】BZOJ3524(Poi2014)[Couriers]题解
- 【bzoj3524/2223】[Poi2014]Couriers/[Coci 2009]PATULJCI 主席树
- 【bzoj3524】Couriers 主席树
- 【bzoj3524】【Poi2014】【Couriers】可持久化线段树(主席树)水题
- bzoj 3524: [Poi2014]Couriers(主席树)
- 洛谷P3567 [POI2014]KUR-Couriers(BZOJ3524)
- [Bzoj3524][Poi2014]Couriers
- bzoj3524[Poi2014]Couriers
- 【Poi2014】【BZOJ3524】Couriers
- document-retrieval
- svo(slam)理论基础
- 分布式Web服务器架构(通俗易通)
- cuda基础学习笔记
- Qt 5.5.1使用WebView无法打开网页
- [BZOJ3524][Poi2014]Couriers(主席树)
- 2059 龟兔赛跑
- 刷屏神器源码(C语言控制台版)【原创】
- 【JZOJ4718】准备食物2 题解
- Struts2拦截器
- HDU2553
- 内联函数
- Binary Tree Paths
- 1421 搬寝室