题意

给出n个数字组成的数字序列,有m组询问。每次询问包含三个数字l,r,k。对于每个询问输出序列区间[l,r]中第k大的数字。

分析

这是主席树的模板题,套板子就可以

 #include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
const int maxn=+;
struct Value{
int x;
int id;
bool operator <(const Value &rhs)const{
return x<rhs.x;
}
}value[maxn];
int n,m,num,cnt;
int lc[*maxn],rc[*maxn],sumv[*maxn];
int a[maxn],root[maxn],Rank[maxn];
void update(int num,int old,int &o,int L,int R){
o=++cnt;
lc[o]=lc[old],rc[o]=rc[old],sumv[o]=sumv[old];
sumv[o]++;
if(L==R)return ;
int M=L+(R-L)/;
if(num<=M)update(num,lc[o],lc[o],L,M);
if(num>M)update(num,rc[o],rc[o],M+,R);
}
int query(int i,int j,int k,int L,int R){
int lsum=sumv[lc[j]]-sumv[lc[i]];
if(L==R)return L;
int M=L+(R-L)/;
if(lsum>=k)return query(lc[i],lc[j],k,L,M);
else return query(rc[i],rc[j],k-lsum,M+,R);
}
int main(){
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++){
scanf("%d",&a[i]);
value[i].x=a[i];
value[i].id=i;
}
sort(value+,value++n);
for(int i=;i<=n;i++){
Rank[value[i].id]=i;
}
num=,cnt=;
for(int i=;i<=n;i++){
update(Rank[i],root[i-],root[i],,n);
}
int l,r,k;
for(int i=;i<=m;i++){
scanf("%d%d%d",&l,&r,&k);
printf("%d\n",value[query(root[l-],root[r],k,,n)].x);
}
return ;
}

最新文章

  1. Leetcode 216. Combination Sum III
  2. MVC3 新建项目
  3. 算法练习:寻找最小的k个数
  4. PYTHON学习之路_PYTHON基础(3)
  5. 餐厅到店点餐系统(APP)
  6. 深入理解计算机系统家庭作业汇总 20135301&amp;&amp;20135328
  7. D3.js 弦图的制作
  8. VC++下封装ADO类以及使用方法
  9. ubuntu 系统设置bugzilla制
  10. Python 实现 Discuz论坛附件下载权限绕过漏洞
  11. C语言课程设计大整数运算
  12. 前后端分离之CORS和WebApi
  13. 第一节:框架前期准备篇之Log4Net日志详解
  14. .Net程序员 初学Ubuntu ,配置Nignix
  15. Confluence 6 隐藏人员目录
  16. 【转】Robot Framework作者建议如何选择自动化测试框架
  17. ubuntu安装scrapy方法
  18. python实现排序算法(一)——插入排序算法
  19. 五个案例让你明白GCD死锁(转)
  20. Windows Server 2008 R2之一活动目录服务部署

热门文章

  1. ajax函数里不能用this调用
  2. hashlib摘要算法模块,logging日志,configparser配置文件模块
  3. 使用Android Studio自带的NDK编译JNI
  4. 【MFC】MFC绘制动态曲线,用双缓冲绘图技术防闪烁
  5. c 可变参数(variable argument)的原理及使用
  6. Cloudera Manager (centos)安装详细介绍
  7. opencv之图像阈值化处理
  8. SharedPreference作用及数据操作模式
  9. 初上dubbo
  10. mysql数据库备份与还原(转)