复杂度:$O(nlog^3n)$

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cstdlib>
#include<iostream>
#include<cmath>
#define MAXN 100000
using namespace std;
int sorted[][MAXN],a[MAXN];
void build(int deep,int l,int r){
if(l==r){
sorted[deep][l]=a[l];
return;
}
int mid=(l+r)>>;
build(deep+,l,mid);
build(deep+,mid+,r);
int p=l,q=mid+,k=l;
while(p<=mid&&q<=r){
if(sorted[deep+][p]<=sorted[deep+][q])
sorted[deep][k++]=sorted[deep+][p++];
else sorted[deep][k++]=sorted[deep+][q++];
}
while(p<=mid) sorted[deep][k++]=sorted[deep+][p++];
while(q<=r) sorted[deep][k++]=sorted[deep+][q++];//存储序列
}
//查询某个数在区间内的rank
int query(int deep,int l,int r,int tl,int tr,int k){
if(tr<l||tl>r) return ;
if(tl<=l&&r<=tr)
return lower_bound(&sorted[deep][l],&sorted[deep][r]+,k)-&sorted[deep][l];
int mid=(l+r)>>;
return query(deep+,l,mid,tl,tr,k)+query(deep+,mid+,r,tl,tr,k);
} int solve(int n,int tl, int tr, int k){
int l=,r=n;
while(l<r){
int mid=(l+r+)>>;
int cnt=query(,,n,tl,tr,sorted[][mid]);
if(cnt<=k) l=mid;
else r=mid-;
}
return sorted[][l];
} int main(){
int n,m;
scanf("%d%d", &n, &m);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
build(,,n);
while(m--){
int tl,tr,k;
scanf("%d%d%d", &tl, &tr, &k);
printf("%d\n", solve(n,tl,tr,k-));
}
return ;
}

最新文章

  1. 我们为什么要配置CATALINA_HOME环境变量
  2. 【OpenCV】选择ROI区域
  3. JavaScript表单提交四种方式
  4. Spring MVC 入门教程示例 (一)
  5. 20160204.CCPP体系详解(0014天)
  6. bnuoj 1053 EASY Problem (计算几何)
  7. SQL rank() 用法
  8. Morgan stanley 电话面试
  9. Linux常用操作命令(一)
  10. IDEA 2017注册码破解方法(转)
  11. c与c++d的typedef
  12. JavaScript 基础学习1-day14
  13. 半径无关快速高斯模糊实现(附完整C代码)
  14. Android-XML
  15. Linux DNS 服务器安装、配置和维护
  16. k8s部署kafka集群
  17. Hibernate 配置文件hibernate.cfg.xml的详细
  18. OOm是否可以try catch ?
  19. 【PAT】B1077 互评成绩计算(20 分)
  20. 把springboot的项目打包运行指南

热门文章

  1. MySQL的安装配置教程
  2. oracle 内存分配和调优 总结
  3. Eclipse下无法解析注解:@Getter和@Setter
  4. 在同一服务器使用git分支建立线上 和 测试 项目
  5. C程序花括号嵌套层次统计(新)
  6. NAT功能测试
  7. 怎样用java生成GUID与UUID
  8. Required String parameter &#39;id&#39; is not present
  9. nginx 反向代理与负载均衡应用实践
  10. Docker for windows 7 - 加载 docker images