51nod 1175 区间中第K大的数(主席树)
来源:互联网 发布:淘宝店招牌尺寸 编辑:程序博客网 时间:2024/06/07 02:32
做的那俩是区间第k小,碰到个区间第k大的,顺手切掉。
#include <bits/stdc++.h>using namespace std;const int MAXN = 1e5+10;int num[MAXN],root[MAXN];struct node{ int l,r,sum;} T[MAXN*40];int cnt,n,m;vector<int> vec;int getid(int x){ return lower_bound(vec.begin(),vec.end(),x) - vec.begin() + 1;}void init(){ vec.clear(); cnt = 0; root[0] = 0; T[0].l = T[0].r = T[0].sum = 0;}void update(int l, int r, int &x, int y, int pos){ T[++cnt] = T[y]; T[cnt].sum++; x = cnt; if(l == r) return; int mid = (l+r) >> 1; if(pos <= mid) update(l,mid,T[x].l,T[y].l,pos); else update(mid+1,r,T[x].r,T[y].r,pos);}int query(int l, int r, int x, int y, int k){ if(l == r) return l; int mid = (l+r) >> 1;// int sum = T[T[y].l].sum - T[T[x].l].sum;// if(k <= sum) return query(l,mid,T[x].l,T[y].l,k);// else return query(mid+1,r,T[x].r,T[y].r,k-sum); int sum = T[T[y].r].sum - T[T[x].r].sum; if(sum >= k) return query(mid+1,r,T[x].r,T[y].r,k); else return query(l,mid,T[x].l,T[y].l,k-sum);}int main(){ int x,y,z; init(); scanf("%d",&n); for(int i = 1; i <= n; ++i) { scanf("%d",&num[i]); vec.push_back(num[i]); } sort(vec.begin(),vec.end()); vec.erase(unique(vec.begin(),vec.end()),vec.end()); for(int i = 1; i <= n; ++i) update(1,n,root[i],root[i-1],getid(num[i])); scanf("%d",&m); for(int i = 1; i <= m; ++i) { scanf("%d %d %d",&x,&y,&z); ++x,++y; printf("%d\n",vec[query(1,n,root[x-1],root[y],z)-1]); } return 0;}
阅读全文
0 0
- 51nod 1175 区间中第K大的数(主席树)
- 【主席树】51Nod 1175 区间中第K大的数
- 51Nod-1175-区间中第K大的数
- 51nod 1175 区间中第K大的数
- 区间第k大的数(主席树)
- 可持久化线段树|主席树 POJ 2104 区间第k大的数
- poj2104 主席树区间第k大
- 主席树解决区间第k大
- 区间第k大(主席树)
- 51nod(第K大的数)
- 主席树---求第k大的数 poj2104
- 51nod 第K大区间
- 51nod 1686 第k大区间
- 51nod-1686 第K大区间
- 51Nod-1686-第K大区间
- 51nod 1686 第K大区间
- 51Nod 1686(第K大区间)
- 51nod 1686 第K大区间
- 1014. 福尔摩斯的约会 (20)
- 【NOIP2017提高A组集训10.22】公交运输
- JSP基础(十四)——使用JDBC的Statement对象和PreparedStatement对象对数据库进行CRUD
- 【BZOJ2330】【SDOI2012】糖果(差分约束,SPFA)
- 泛函分析简列:度量空间之Banach空间与模等价
- 51nod 1175 区间中第K大的数(主席树)
- iOS NavigationController返回上一层界面
- ACM模板
- 矩阵乘+概率DP bzoj2676 Contra
- 基于R-FCN的物体检测
- poj3140
- 006_跨平台开发_MUI_折叠面板(accordion)
- 第一篇文章献给idea加码云
- USACO1.3牛式 Prime Cryptarithm