各位大佬都用的排序和杨颙大定理,蒟蒻的我怎么也不会做(瑟瑟发抖),那么,就来一发主席树吧。
我们知道线段树可以维护区间,平衡树可以维护值域
那么,我们可以用线段树套平衡树来解决这个区间值域的问题
线段树套平衡树(令人窒息的操作)
好在权值线段树也可以维护值域,
我们只要建n棵线段树维护前缀和,然后作差就好
考虑空间限制,我们需要让这些线段树共用一些节点,再搞一搞离散化,其实这题的数据范围不用
一颗主席树华丽登场
时间复杂度O(nlogn),空间复杂度O(nlogn)
上代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn=;
struct tree{
int v,ls,rs;
}a[*maxn];
int n,m,rt[maxn],cnt,mp[maxn],v[maxn],out[maxn];
void insert(int pre,int cur,int p,int l,int r) //插入
{
if(l==r)
{
a[cur].v=a[pre].v+;
return;
}
int m=(l+r)>>;
if(p<=m)
{
a[cur].ls=++cnt; //新建节点
a[cur].rs=a[pre].rs; //共用节点
insert(a[pre].ls,a[cur].ls,p,l,m);
}
else
{
a[cur].rs=++cnt;
a[cur].ls=a[pre].ls;
insert(a[pre].rs,a[cur].rs,p,m+,r);
}
a[cur].v=a[a[cur].ls].v+a[a[cur].rs].v; //push up
}
int kth(int x,int y,int k,int l,int r) //查询k小值
{
if(l==r)
return l;
int m=(l+r)>>;
int num=a[a[y].ls].v-a[a[x].ls].v; //前缀和
if(num>=k) //第k小在左子树
return kth(a[x].ls,a[y].ls,k,l,m);
else //在右子树
return kth(a[x].rs,a[y].rs,k-num,m+,r);
}
int main()
{
cin>>n;
for(int i=;i<=n;i++)
{
scanf("%d",&v[i]);
mp[i]=v[i];
}
sort(mp+,mp+n+); //特色离散化
cin>>m;
for(int i=;i<=n;i++)
{
v[i]=lower_bound(mp+,mp+n+,v[i])-mp;
out[v[i]]=i;
rt[i]=++cnt;
insert(rt[i-],rt[i],v[i],,n);
}
for(int i=;i<=m;i++)
{
int x,y,k;
scanf("%d%d%d",&x,&y,&k);
printf("%d\n",out[kth(rt[x-],rt[y],k,,n)]);
}
return ;
}

Luogu P2310 【loidc,看看海】的更多相关文章

  1. P2310 loidc,看看海

    P2310 loidc,看看海 题目背景 loidc喜欢大海.在他放假的时候他经常一个人跑到海边独自玩耍. 在浪花的冲击下,他可以忘记打代码的烦躁,真是惬意极了. 虽然今天是周六,但今天可是11.8号 ...

  2. Luogu P2309 loidc,卖卖萌

    题目链接:Click here 题目大意:给你一个长度为n的数串,问这个数串的sum为正数的子串个数 Solution: 我们先处理以下前缀和,记为\(s_i\) 则问题可以转化为求有多少对\(i,j ...

  3. Luogu P2297 刷图 DP

    题目背景 loidc,LOI中的传说级哲♂学家,曾经创造一天内入坑maxlongint个弃坑0x7fffffff个的神奇纪录.目前,loidc最喜欢的游戏就是地下城与勇♂士. 题目描述 Loidc是一 ...

  4. 海康网络摄像机YV12转换为BGR,由opencv Mat显示 (转)

    我使用的是海康DS-2CD852MF-E, 200万,网络摄像机,已经比较老了,不过SDK在海康官网下载的,开发流程都差不多. 海康摄像机回调解码后的视频数据格式为YV12,顺便说一下YV12的数据格 ...

  5. 海鑫智圣:物联网漫谈之MQTT协议

    什么是MQTT协议 MQTT(消息队列遥测传输协议)是IBM在1999年专门针对物联网等应用场景来制订的轻量级双向消息传输协议,它主要是为了解决物联网上使用到的设备的互相通信的问题,以及这些设备与后端 ...

  6. c#程序如何从海康ipserver查询获取DVR设备ip地址

    海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来 ...

  7. HDU--航海舰队

    海舰队 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...

  8. 从Facebook跑来阿里的赵海平大叔,你要干啥?

    赵海平在今年三月份来到阿里,听毕玄(他现任主管)说去年五六月份就跟赵海平聊上了.有人问:为啥 BAT 三大巨头,你看中了阿里巴巴?在今天现场达一千多人的分享中赵海平给出了回复:“因为百度和腾讯没找我呗 ...

  9. html5实现银联海购商品分类列表

    银联海购官网请点击 http://haigou.unionpay.com/ 1.实现效果预览展示如下: 2.源码如下 <!DOCTYPE html> <html> <he ...

随机推荐

  1. 解题:WC 2007 石头剪刀布

    题面 要我们把边定向,最大化留下来的三元环数目......并不能直接做,考虑容斥,去掉不合法的数目. 那么三个点不成环当且仅当有一个点出度为2一个点入度为2,发现最终答案就是$C_n^3-\sum C ...

  2. 【纪中集训2019.3.13】fft

    题意: 描述 一共有\(n+m\)道题,其中\(n\)道答案是\(A\),\(m\)道答案是\(B\): 你事先知道\(n和m\),问在最优情况下的期望答错次数,对\(998244353\)取模: 范 ...

  3. bzoj3672【NOI2014】购票

    题目描述   今年夏天,NOI在SZ市迎来了她30周岁的生日.来自全国 n 个城市的OIer们都会从各地出发,到SZ市参加这次盛会.        全国的城市构成了一棵以SZ市为根的有根树,每个城市与 ...

  4. laravel Collection mapToDictionary 例子

    源码 示例 <?php require __DIR__ . '/bootstrap/app.php'; $arr = [ [ 'name' => 'John', 'age' => 2 ...

  5. linux查看tomcat日志

    声明:以上内容均为转载,个人对这块知识搜罗之后放在一起,非原创,以后这块有问题还会继续添加. Tomcat 日志分为下面5类: catalina . 相当命令行输出日志 localhost . 相当于 ...

  6. IOS计算文字高度

    1.计算文字长度 NSString* str = @"你好"; .f; NSStringDrawingOptions options = NSStringDrawingUsesLi ...

  7. vue2借助animate.css实现路由动画效果

    第一步: npm install animate.css --save 第二步:打开main.js import animate from 'animate.css' Vue.use(animate) ...

  8. Windows下php,mysql,apache相关安装与配置,完善中…

    PHP 的安装 由于php是一个zip文件(非install版),安装较为简单解压就行.把解压的 php5.2.1-Win32重命名为 php5.并复制到安装盘目录下.例如安装路径为 c:\php5 ...

  9. Docker查看映射卷报错

    问题描述: 当查看Docker容器的映射卷时出现报错信息,如下: [root@kazihuo ~]# docker inspect -f {{.Volumes}} volume   #volume指容 ...

  10. 监控redis数据库应用状态:python,tornado实现

    公司里最近redis服务器压力越来越大,其大概情况,只能从操作系统层面看,并不详尽,故同事在网上找了一个叫做 redis-live的开源项目,我配合部署了一下,还真有点意思,并解决了其中部分小debu ...