各位大佬都用的排序和杨颙大定理,蒟蒻的我怎么也不会做(瑟瑟发抖),那么,就来一发主席树吧。
我们知道线段树可以维护区间,平衡树可以维护值域
那么,我们可以用线段树套平衡树来解决这个区间值域的问题
线段树套平衡树(令人窒息的操作)
好在权值线段树也可以维护值域,
我们只要建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. Lnmp上安装Yaf学习(一)

    今天学习Lnmp上面如何安装Yaf流程 一.安装Lnmp 集成环境 访问路径:https://lnmp.org/install.html 这里我安装稳定版lnmp 1)   wget -c http: ...

  2. 关于javaweb中图片的存储问题

    图片上传到服务器,然后把上传路径保存到数据库,然后从数据库读出保存的路径显示到网站页面. 我们一般可以在CMS系统中将图片添加到图片服务器中(这个可以使用ftp来部署),然后图片上传到服务器后,在数据 ...

  3. Kubernetes 1.5集成heapster

    Heapster是kubernetes集群监控工具.在1.2的时候,kubernetes的监控需要在node节点上运行cAdvisor作为agent收集本机和容器的资源数据,包括cpu.内存.网络.文 ...

  4. CF916E Jamie and Tree

    CF916E Jamie and Tree 题意翻译 有一棵n个节点的有根树,标号为1-n,你需要维护以下三种操作 1.给定一个点v,将整颗树的根变为v 2.给定两个点u, v,将lca(u, v)所 ...

  5. Excel 之 字符串截取、拼接、和透视表

    假设有表如下: 如何得到E列的数据(格式为模式名.表名,如PDM_DATA.T05_GMS_NAV_SPV_PCH_RDM_TRX_EVT)?如何由E列得到F列数据(从E类中截取表名)? 1. 字符串 ...

  6. VS批处理命令使用

    在项目开始生成或者生成完成后想做一些操作,比如去编译非解决方案下的的项目,完成编译后复制文件到某个文件夹之类的纠结需求. 1. 基本使用 预先生成事件命令行,可以在项目编译的过程中运行 后期生成事件命 ...

  7. 科学计算三维可视化---TraitsUI(View定义界面)

    View定义界面 使用View来自定义界面 class ModelManager(HasTraits): model_name = Str category = Str model_file = St ...

  8. [CQOI2009]DANCE跳舞(ISAP写法)

    https://daniu.luogu.org/problemnew/show/3153 #include<queue> #include<cstdio> #include&l ...

  9. SQL语句(二十)—— 数据库安全性

    数据库安全性 1. SQL Server 配置管理器  => 网络配置 MSSQLSERVER 协议,如果应用程序和SQL Server 在同一机器上,仅使用 Shared Memory (共享 ...

  10. sparse representation 与sparse coding 的区别的观点

    @G_Auss: 一直觉得以稀疏为目标的无监督学习没有道理.稀疏表示是生物神经系统的一个特性,但它究竟只是神经系统完成任务的副产物,还是一个优化目标,没有相关理论,这里有推理漏洞.实际上,稀疏目标只能 ...