POJ 2104 【主席树】【区间第K大】
#include<stdio.h>
#include<algorithm>
#include<string.h>
#define MAXN 100010
#define MAXM 5050
using namespace std;
struct tr{
int l,r,sum;
};
tr tree[MAXN*];
int root[MAXN];
int cnt;
int jilu[MAXN],from[MAXN];
void updat(int s,int e,int &x,int y,int pos){
tree[++cnt]=tree[y];
x=cnt;
tree[x].sum++;
if(s==e)return;
int mid=(s+e)>>;
if(mid>=pos)
updat(s,mid,tree[x].l,tree[y].l,pos);
else
updat(mid+,e,tree[x].r,tree[y].r,pos);
}
int query(int s,int e,int x,int y,int k){
if(s==e)return s;
int mid=(s+e)>>;
if(tree[tree[y].l].sum-tree[tree[x].l].sum>=k)
return query(s,mid,tree[x].l,tree[y].l,k);
else
return query(mid+,e,tree[x].r,tree[y].r,k-tree[tree[y].l].sum+tree[tree[x].l].sum);
}
int main()
{
int n,m;
scanf("%d%d",&n,&m);
for(int i=;i<n;i++){
scanf("%d",&jilu[i]);
from[i]=jilu[i];
}
sort(jilu,jilu+n);
int num=unique(jilu,jilu+n)-jilu;
for(int i=;i<n;i++){
int id=upper_bound(jilu,jilu+num,from[i])-jilu;
updat(,num,root[i+],root[i],id);
}
for(int i=;i<m;i++){
int a,b,c;
scanf("%d%d%d",&a,&b,&c);
printf("%d\n",jilu[query(,num,root[a-],root[b],c)-]);
}
return ;
}
POJ 2104 【主席树】【区间第K大】的更多相关文章
- POJ 2104 K-th Number 主席树(区间第k大)
题目链接: http://poj.org/problem?id=2104 K-th Number Time Limit: 20000MSMemory Limit: 65536K 问题描述 You ar ...
- POJ 2104 静态找区间第k大
静态区间第k大的问题,往往可以利用主席树来解决 这是主席树的第一道题 主席树大概可以理解为在n个节点上都建立一棵线段树,但是想想会超出内存 每一个节点保存的线段树都记录当前整段前缀区间的信息 但是因为 ...
- 主席树区间第K大
主席树的实质其实还是一颗线段树, 然后每一次修改都通过上一次的线段树,来添加新边,使得每次改变就改变logn个节点,很多节点重复利用,达到节省空间的目的. 1.不带修改的区间第K大. HDU-2665 ...
- HDU 6278 主席树(区间第k大)+二分
Just h-index Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 132768/132768 K (Java/Others)To ...
- K-th Number Poj - 2104 主席树
K-th Number Poj - 2104 主席树 题意 给你n数字,然后有m次询问,询问一段区间内的第k小的数. 解题思路 这个题是限时训练做的题,我不会,看到这个题我开始是拒绝的,虽然题意清晰简 ...
- [poj 2104]主席树+静态区间第k大
题目链接:http://poj.org/problem?id=2104 主席树入门题目,主席树其实就是可持久化权值线段树,rt[i]维护了前i个数中第i大(小)的数出现次数的信息,通过查询两棵树的差即 ...
- poj 2104 主席树(区间第k大)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 44940 Accepted: 14946 Ca ...
- POJ 2104 求序列里第K大 主席树裸题
给定一个n的序列,有m个询问 每次询问求l-r 里面第k大的数字是什么 只有询问,没有修改 可以用归并树和划分树(我都没学过..囧) 我是专门冲着弄主席树来的 对主席树的建树方式有点了解了,不过这题为 ...
- POJ 2104(K-th Number-区间第k大-主席树)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 31790 Accepted: 9838 Cas ...
- zoj2112 主席树动态第k大 (主席树&&树状数组)
Dynamic Rankings Time Limit: 10 Seconds Memory Limit: 32768 KB The Company Dynamic Rankings has ...
随机推荐
- Javax.mail.NoSuchProviderException: smtp
UT 这个错误是因为缺jar包 下载地址:在oralce下载一个 JavaMail 包 http://www.oracle.com/technetwork/java/javamail/index-13 ...
- C# 常见集合之前的转换
1,从System.String[]转到List<System.String> System.String[] str={"str","string" ...
- 深入理解HashMap
转自:http://annegu.iteye.com/blog/539465 Hashmap是一种非常常用的.应用广泛的数据类型,最近研究到相关的内容,就正好复习一下.网上关于hashmap的文章很多 ...
- Mock框架
MoQ(基于.net3.5,c#3.0的mock框架)简单介绍 - 你听海是不是在笑 - 博客园 http://www.cnblogs.com/nuaalfm/archive/2009/11/25/1 ...
- [mysql] mysql主从复制(基于日志点)
怎么安装mysql数据库,这里不说了,只说它的主从复制,步骤如下: 1.主从服务器分别作以下操作: 1.1.版本一致 1.2.初始化表,并在后台启动mysql 1.3.修改root的密码 2.修 ...
- NoSQL之基础篇
NoSQL(NoSQL = Not Only SQL ),泛指非关系型的数据库.随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2. ...
- 用JS获取DropDownList选中得值
HTML: <asp:DropDownList ID="DropdownList1" runat="server" AutoPostBack=" ...
- CentOS 7.0系统安装配置图解教程
转自:http://www.osyunwei.com/archives/7829.html 操作系统:CentOS 7.0 64位 IP地址:192.168.21.128 网关:192.168.21. ...
- mongodb基本语句使用
mongodb学习:##mongodb基础##数据库常用命令##用户相关##修改.添加.删除集合数据##条件操作符##创建表 ------------------------------------- ...
- IntelliJ IDEA使用SSH功能
Tools→Start SSH session... 选择Edit credentials... 输入SSH登录信息即可 输入SSH登录信息,Port默认为22 来自为知笔记(Wiz)