HDU 2665 Kth number(区间第K大)
2015-08-14 15:33
357 查看
题目链接
归并树模板
归并树模板
<pre name="code" class="cpp">#include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<ctime> #include<iostream> #include<algorithm> #include<sstream> #include<fstream> #include<vector> #include<map> #include<stack> #include<list> #include<set> #include<queue> #define LL long long #define lson l,m,rt<<1 #define rson m+1,r,rt<<1 | 1 using namespace std; const int B=1000,maxn=100005; int n,m; int a[maxn],nums[maxn]; int L[maxn],R[maxn],K[maxn]; vector<int>dat[maxn<<2]; void PushUp(int rt) { merge(dat[rt<<1].begin(),dat[rt<<1].end(),dat[rt<<1|1].begin(),dat[rt<<1|1].end(),dat[rt].begin()); } void build(int l,int r,int rt) { dat[rt].clear(); if(l==r) { int x; //scanf("%d",&x); //printf("[%d,%d] = x = %d\n",l,r,a[l-1]); dat[rt].push_back(a[l-1]); return ; } int m=(l+r)>>1; build(lson); build(rson); dat[rt].resize(r-l+1); PushUp(rt); } int Query(int L,int R,int x,int l,int r,int rt) { if(L<=l&&r<=R) { return upper_bound(dat[rt].begin(),dat[rt].end(),x)-dat[rt].begin(); } int m=(l+r)>>1,sum=0; if(L<=m) sum+=Query(L,R,x,lson); if(R>m) sum+=Query(L,R,x,rson); return sum; } int ask(int l,int r,int x) { } void solve() { sort(a,a+n); for(int i=0;i<m;i++) { int l=0,r=n-1,ans; while(l<r) { int mid=(l+r)>>1; int x=a[mid],c=Query(L[i],R[i],x,1,n,1); if(c<K[i]) l=mid+1; else r=mid; } printf("%d\n",a[r]); } } int main() { //freopen("in.txt","r",stdin); //freopen("out.txt","w",stdout); int t; scanf("%d",&t); while(t--) { scanf("%d%d",&n,&m); for(int i=0;i<n;i++) scanf("%d",&a[i]); build(1,n,1); for(int i=0;i<m;i++) scanf("%d%d%d",&L[i],&R[i],&K[i]); solve(); } return 0; }
相关文章推荐
- Java-希尔排序
- js实现当复选框选择匿名登录时隐藏登录框效果
- JVM调优总结
- Win10 Mobile 10512安卓应用键盘问题 无需重置也能解决
- ecshop设置首页精品推荐和新品上市等显示数量
- 高级组件之网格视图
- Installshield limited edition for VS2012安装,不能注册问题
- UIKit Core之笔记two--->>Socket
- JAVA实现EXCEL公式专题(五)——数字处理函数
- C/C++ 笔试面试(3)——内存管理GetMemory
- C/C++ 笔试面试(1)—— sizeof
- 做程序猿的老婆应该注意的一些事情
- jquery 按键盘上的enter事件
- Android开发IDE配置及选择
- UbuntuServer12.04安装MongoDB,开机自启,服务,权限
- Installshield limited edition for VS2012安装,不能注册问题
- WPF Canvas 画区域
- CSS3边框border知识点
- jquery zTree插件 json 数据详解
- RHEL7 -- nmcli的使用