zoukankan      html  css  js  c++  java
  • 主席树模板

    这里没有思想,没有光,没有热,只有寒冷和永无止境的黑暗。

    还有.赤裸裸的主席树代码(求区间第K大)

    注意保险起见内存开30倍

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<algorithm>
     4 #include<cmath>
     5 #include<queue>
     6 #include<cstring>
     7 #include<string>
     8 #include<map>
     9 #define ll long long
    10 #define DB double
    11 #define eps 1e-3
    12 #define inf 2147483647
    13 #define mod  100000007
    14 using namespace std;
    15 inline int read()
    16 {
    17     int x=0,w=1;char ch=getchar();
    18     while(!isdigit(ch)){if(ch=='-') w=-1;ch=getchar();}
    19     while(isdigit(ch)) x=(x<<3)+(x<<1)+ch-'0',ch=getchar();
    20     return x*w;
    21 }
    22 const int N=2e5+10;
    23 int n,Q,k;
    24 int cnt,a[N],b[N],ls[N*30],rs[N*30],sum[N*30];
    25 int rt[N*30];
    26 void add(int &nw,int last,int l,int r,int p)
    27 {
    28     nw=++cnt;
    29     ls[nw]=ls[last];rs[nw]=rs[last];
    30     sum[nw]=sum[last]+1;
    31     if(l==r) return;
    32     int mid=(l+r)>>1;
    33     if(p<=mid) add(ls[nw],ls[last],l,mid,p);
    34     else add(rs[nw],rs[last],mid+1,r,p);
    35 }
    36 int query(int x,int y,int l,int r,int k)
    37 {
    38     if(l==r) return l;
    39     int mid=(l+r)>>1;
    40     int u=sum[ls[y]]-sum[ls[x]];
    41     if(k<=u) return query(ls[x],ls[y],l,mid,k);
    42     else return query(rs[x],rs[y],mid+1,r,k-u);
    43 }
    44 int main()
    45 {
    46     n=read();Q=read();
    47     for(int i=1;i<=n;++i) a[i]=read(),b[i]=a[i];
    48     sort(b+1,b+n+1);
    49     k=unique(b+1,b+n+1)-b-1;
    50     for(int i=1;i<=n;++i)
    51      a[i]=lower_bound(b+1,b+k+1,a[i])-b;
    52     for(int i=1;i<=n;++i)
    53      add(rt[i],rt[i-1],1,k,a[i]);
    54     while(Q--)
    55     {
    56         int l,r,x;l=read();r=read();x=read();
    57         int pos=query(rt[l-1],rt[r],1,k,x);
    58         printf("%d
    ",b[pos]);
    59     }
    60     return 0;
    61 }

    …φ(๑˃∀˂๑)♪ 学习是我的全部

  • 相关阅读:
    Ocelot简易教程(二)之快速开始2
    jQuery编程小结
    用户界面的一些好的设计理念
    JQuery插件开发教程
    ASP.NET MVC IOC 之AutoFac攻略
    ASP.NET MVC IOC 之Ninject攻略
    ASP.NET MVC IOC之Unity攻略
    ASP.NET MVC之单元测试分分钟的事
    C#秘密武器之扩展方法
    让AutoMapper在你的项目里飞一会儿
  • 原文地址:https://www.cnblogs.com/adelalove/p/8505562.html
Copyright © 2011-2022 走看看