BZOJ 2223: [Coci 2009]PATULJCI
2017-01-12 11:24
375 查看
Description
Sample Input
10 3 1 2 1 2 1 2 3 2 3 3 8 1 2 1 3 1 4 1 5 2 5 2 6 6 9 7 10Sample Output
noyes 1
no
yes 1
no
yes 2
no
yes 3
HINT
Notice:输入第二个整数是序列中权值的范围Lim,即1<=ai(1<=i<=n)<=Lim。1<=Lim<=10000
分析
裸的可持久化线段树代码
#include <algorithm> #include <iostream> #include <cstdio> #define N 300005 using namespace std; struct NOTE { int l,r,size; }t[N*20]; int n,m,lim,tot; int root ; void build(int &d,int l,int r) { d=++tot; if(l==r) return ; int mid=(l+r)/2; build(t[d].l,l,mid); build(t[d].r,mid+1,r); } void insert(int &d,int p,int x,int l,int r) { d=++tot; t[d].size+=t[p].size; if(l==r) { t[d].size++; return ; } t[d].l=t[p].l; t[d].r=t[p].r; int mid=(l+r)/2; if(x<=mid) insert(t[d].l,t[p].l,x,l,mid); else insert(t[d].r,t[p].r,x,mid+1,r); t[d].size=t[t[d].l].size+t[t[d].r].size; } int query(int d,int p,int l,int r,int x) { if(t[d].size-t[p].size<=x) return 0; if(l==r) return l; int mid=(l+r)/2; if(t[t[d].l].size-t[t[p].l].size>x) return query(t[d].l,t[p].l,l,mid,x); else return query(t[d].r,t[p].r,mid+1,r,x); } int main() { scanf("%d%d",&n,&lim); build(root[0],1,lim); for (int i=1;i<=n;i++) { int x; scanf("%d",&x); insert(root[i],root[i-1],x,1,lim); } scanf("%d",&m); for (int i=1;i<=m;i++) { int x,y; scanf("%d%d",&x,&y); int w=query(root[y],root[x-1],1,lim,(y-x+1)/2); if (!w) printf("no\n"); else printf("yes %d\n",w); } }
相关文章推荐
- 【bzoj3524/2223】[Poi2014]Couriers/[Coci 2009]PATULJCI 主席树
- [BZOJ2223][Coci 2009]PATULJCI(整体二分+bit)
- bzoj2223 [Coci 2009]PATULJCI
- BZOJ 2223: [Coci 2009]PATULJCI
- bzoj3524: [Poi2014]Couriers&&2223: [Coci 2009]PATULJCI
- [bzoj2223][Coci 2009]PATULJCI 主席树
- 【BZOJ】3524 [Poi2014]Couriers && 【BZOJ】2223 [Coci 2009]PATULJCI 主席树
- BZOJ 2223: [Coci 2009]PATULJCI 主席树
- [分块 随机化] BZOJ 2223 [Coci 2009]PATULJCI
- BZOJ 2223 [Coci 2009]PATULJCI 主席树
- [BZOJ3524] [Poi2014]Couriers/[BZOJ2223] [Coci 2009]PATULJCI
- bzoj2223 [Coci 2009]PATULJCI
- bzoj 2223: [Coci 2009]PATULJCI 可持久化线段树
- 【bzoj2223】[Coci 2009]PATULJCI 主席树
- [BZOJ2223][Coci 2009]PATULJCI
- bzoj 2223: [Coci 2009]PATULJCI
- 【BZOJ】【2223】【COCI 2009】PATULJCI
- BZOJ_2223_[Coci 2009]PATULJCI_主席树
- bzoj2223: [Coci 2009]PATULJCI 主席树
- BZOJ 2223 [Coci 2009]PATULJCI | 主席树练习 (好像是个权限题啊)