题目大意:对于一个序列,每次询问区间[l,r]的第k大树。

分析:

主席树模板题

program kthtree;
type
point=record
l,r,s:longint;
end;
var
t:array[..*]of point;
a,b,id,root:array[..]of longint;
n,i,m,x,y,k,v,len:longint;
procedure qsort(l,h:longint);
var i,j,t,m:longint;
begin i:=l; j:=h;
m:=a[(i+j) div ];
repeat
while a[i]<m do inc(i);
while m<a[j] do dec(j);
if i<=j then
begin t:=a[i]; a[i]:=a[j]; a[j]:=t; t:=id[i];id[i]:=id[j]; id[j]:=t;
inc(i); dec(j); end; until i>j;
if i<h then qsort(i,h); if j>l then qsort(l,j); end;
procedure add(l,r,v:longint; var p:longint);
var mid:longint;
begin
inc(len); t[len]:=t[p]; p:=len; inc(t[p].s);
if l=r then exit;
mid:=(l+r) div ;
if v<=mid then add(l,mid,v,t[p].l) else add(mid+,r,v,t[p].r);
end;
function query(x,y,l,r,k:longint):longint;
var mid,s:longint;
begin
if l=r then exit(l);
mid:=(l+r) div ; s:=t[t[y].l].s-t[t[x].l].s;
if k<=s then exit(query(t[x].l,t[y].l,l,mid,k))
else exit(query(t[x].r,t[y].r,mid+,r,k-s));
end;
begin
readln(n,m);
for i:= to n* do t[i].s:=;
for i:= to n do begin read(a[i]); id[i]:=i; end;
qsort(,n);
for i:= to n do b[id[i]]:=i;
len:=;
for i:= to n do
begin
root[i]:=root[i-];
add(,n,b[i],root[i]);
end;
for i:= to m do
begin
readln(x,y,k);
writeln(a[query(root[x-],root[y],,n,k)]);
end;
end.

最新文章

  1. Ubuntu的多文件编译以及c语言的数组、函数
  2. [ActionScritp 3.0] 使用LocalConnection建立通信
  3. Eclipse开发Android程序如何在手机上运行
  4. 在.net中悄悄执行dos命令,并获取执行的结果(转)
  5. oracle11g导入dmp文件(根据用户)
  6. [Ruby01]Class, Module, Object,Kernel的关系
  7. Linux ps aux指令詳解--转
  8. Linux实现密钥登陆
  9. vagrant 入门3
  10. iconfont.cn阿里巴巴矢量图下载字体图标实战
  11. appium初学者,使用之检查appium环境报错Could not detect Mac OS X Version from sw_vers output: &#39;10.12.1’,
  12. Java第七周学习总结
  13. eclipse工程当中的.classpath 和.project文件什么作用?
  14. 你不知道的JavaScript--Item20 作用域与作用域链(scope chain)
  15. Asp.Net Core中HttpClient的使用方式
  16. k8s中yaml文常见语法
  17. spring cloud: zuul(五): prefix访问前缀, ignoredServices粗粒度访问, yml不起作用
  18. 什么是内存溢出以及java中内存泄漏5种情况的总结
  19. spring 注解 注入属性 和 注解完成bean定义
  20. eclipse安装hadoop插件

热门文章

  1. 2018.6.15 Java对象序列化详解
  2. C语言 数组名不是首地址指针
  3. sass安装更新及卸载方法
  4. 驾考试题的json代码
  5. iOS启动原理及应用生命周期
  6. expect用法举例
  7. 51nod——2476 小b和序列(预处理 思维)
  8. Nginx+proxy_cache图片缓存
  9. Spring中注解大全和应用
  10. Flask初学者:Python虚拟环境,Flask安装,helloworld,run方法