POJ--2104 K-th Number (主席树模版题)
求区间第k大
#include<iostream>
#include<cstring>
#include<algorithm>
#include<vector>
#include<stdio.h>
using namespace std;
#define maxn 100009
#define LL long long
#define mem(a,b) memset(a,b,sizeof(a))
struct ac{
int va,l,r;
}tre[maxn*];
;
vector<int>q;
int getid(int x){
);
}
void updata(int l,int r,int &x,int y,int z){
tre[++tot]=tre[y];
tre[tot].va++;
x=tot;
if(l==r) return ;
;
if(z>mid){
updata(mid+,r,tre[x].r,tre[y].r,z);
}else updata(l,mid,tre[x].l,tre[y].l,z);
}
int query(int l,int r,int x,int y,int z){
if(l==r) return l;
int s=tre[tre[x].l].va-tre[tre[y].l].va;
;
if(s>=z){
return query(l,mid,tre[x].l,tre[y].l,z);
}
,r,tre[x].r,tre[y].r,z-s);
}
int main(){
int n,m;
cin>>n>>m;
mem(a,); mem(tre,);
;j<=n;j++){
scanf("%d",&a[j]);
q.push_back(a[j]);
}
sort(q.begin(),q.end());
q.erase(unique(q.begin(),q.end()),q.end());
int len=q.size();
;j<=n;j++){
int x=getid(a[j]);
updata(,len,root[j],root[j-],x);
}
;j<m;j++){
int l,r,x;
scanf("%d%d%d",&l,&r,&x);
cout<<q[query(,len,root[r],root[l-],x)-]<<endl;
}
}
POJ--2104 K-th Number (主席树模版题)的更多相关文章
- 【POJ 2104】 K-th Number 主席树模板题
达神主席树讲解传送门:http://blog.csdn.net/dad3zz/article/details/50638026 2016-02-23:真的是模板题诶,主席树模板水过.今天新校网不好,没 ...
- SPOJ MKTHNUM & POJ 2104 - K-th Number - [主席树模板题]
题目链接:http://poj.org/problem?id=2104 Description You are working for Macrohard company in data struct ...
- 主席树:POJ2104 K-th Number (主席树模板题)
K-th Number Time Limit: 20000MS Memory Limit: 65536K Total Submissions: 44952 Accepted: 14951 Ca ...
- HDU--4417 Super Mario (主席树模版题)
题目链接 题目让求 L R区间 不大于H 的数有多少 数据太大需要离散化 #include<bits/stdc++.h> using namespace std; #define maxn ...
- 静态区间第k大(主席树)
POJ 2104为例(主席树入门题) 思想: 可持久化线段树,也叫作函数式线段树,也叫主席树(高大上). 可持久化数据结构(Persistent data structure):利用函数式编程的思想使 ...
- hdu_2665_Kth number(主席树)
题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=2665 题意:给你一个区间,让你找这个区间第K大的数 题解:主席树模版题,也可以用划分树 #includ ...
- POJ 2104:K-th Number(主席树静态区间k大)
题目大意:对于一个序列,每次询问区间[l,r]的第k大树. 分析: 主席树模板题 program kthtree; type point=record l,r,s:longint; end; var ...
- poj 2104 K-th Number 主席树+超级详细解释
poj 2104 K-th Number 主席树+超级详细解释 传送门:K-th Number 题目大意:给出一段数列,让你求[L,R]区间内第几大的数字! 在这里先介绍一下主席树! 如果想了解什么是 ...
- poj 2104 K-th Number(主席树 视频)
K-th Number 题意: 给你一些数,让你求一个区间内,第k大的数是多少. 题解: 主席树第一题,看的qsc视频写的,戳戳戳 学到了unique函数,他的作用是:把相邻的重复的放到后面,返回值是 ...
随机推荐
- Docker操作删除所有容器镜像
借鉴博客:https://www.cnblogs.com/yanyouqiang/p/8301856.html https://blog.csdn.net/wy_97/article/details/ ...
- 你不知道的JavaScript——第二章:this全面解析
1调用位置 调用栈:为了到达当前执行位置所调用的所有函数. function baz(){ //当前调用栈:baz //因此,当前调用位置是全局作用域 console.log('baz'); bar( ...
- js中的call、apply、bind
在js中每个函数都包含两个非继承而来的方法:call()和apply() call和apply的作用都是在特定的作用域中将函数绑定到另外一个对象上去运行,即可以用来重新定义函数的执行环境,两者仅在定义 ...
- Android——MaterialDesign之三NavigationView
NavigationView的使用 这里我们来讲讲在Android5.0之后推出的NavigationView的具体使用方式.和普通的侧拉菜单制作方式一样,首先所有的东西还是都放在一个DrawerLa ...
- Client将数据读写HDFS流程
HDFS介绍 HDFS(Hadoop Distributed File System )Hadoop分布式文件系统.是根据google发表的论文翻版的. 什么是分布式文件系统 分布式文件系统(Dist ...
- python爬虫之爬虫性能篇
一.首先想到的是for循环,单线程爬取每个url,但是如果有url出现了问题,后面的url就得等,性能低. 二.我们考虑线程池的问题,下面我们定义了线程池里面最多10个任务,也就是说最多同一时间只能有 ...
- python数学第四天【古典概型】
- 如何在mac下安装php
步骤如下: 1.下载php源码并解压 2.进入php源码并configure 3.安装openssl 4.sudo make及make test 5.sudo make install 具体命令如下: ...
- Mysql Router 的集群
1. c:\mysql-router, c:\mysql-5.7.23, 这两个目录的bin都要加入path 2. c:\mysql-shell,在bin下,有一个 mysqlsh.exe, 双击,打 ...
- 洛谷 p1019 单词接龙
题目描述 单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合 ...