首先 \(k\) 大容易让我们想到 主席树&树套树&整体二分,而异或又让我们想到 01-Trie。

所以就有一个很明显的二分,二分一个 mid 看有多少个数不大于 mid。

然后发现 \(n\) 只有 \(1000\),所以可以暴力枚举第一维度,然后对 \(y\) 建 01-Trie,在 01-Trie 上查询即可,复杂度 \(O(nq\log^2V)\)。然而复杂度太高过不去

然而我们发现这个过程和主席树查找 \(k\) 大有点儿像。可是有多棵树啊?

学过 树状数组套权值树 的同学应该知道把根全部存起来,然后二分下去,树套树原本的三只 \(\log\) 就变成了 \(\log^2\)。

所以我们在这里也可以将 \(O(n)\) 个根存起来向下二分,感觉有点儿像树套树,又有点儿像整体二分。

最终的复杂度是 \(O(nq\log V)\) 的。

#include<cstdio>
const int M=3e5+5,INF=0x7fffffff;
int n,m,Q,tot,x[1005],y[M],root[M];
int q[1005],p[1005];
struct Node{
int sum,chi[2];
}t[M*35];
int Modify(int u,int x,int d=30){
int o=x>>d&1,id=++tot;
t[id]=t[u];++t[id].sum;
if(~d)t[id].chi[o]=Modify(t[u].chi[o],x,d-1);
return id;
}
int Query(int k,int l,int r,int L=0,int R=INF,int d=30){
if(L==R)return L;
register int i,o,sum=0,mid=(long long)L+R>>1;
for(i=l;i<=r;++i)o=x[i]>>d&1,sum+=t[t[p[i]].chi[o]].sum-t[t[q[i]].chi[o]].sum;
if(k<=sum){
for(i=l;i<=r;++i)o=x[i]>>d&1,p[i]=t[p[i]].chi[o^0],q[i]=t[q[i]].chi[o^0];
return Query(k,l,r,L,mid,d-1);
}
else{
for(i=l;i<=r;++i)o=x[i]>>d&1,p[i]=t[p[i]].chi[o^1],q[i]=t[q[i]].chi[o^1];
return Query(k-sum,l,r,mid+1,R,d-1);
}
}
signed main(){
register int i,j,k,L,R,ql,qr;
scanf("%d%d",&n,&m);
for(i=1;i<=n;++i)scanf("%d",x+i);
for(i=1;i<=m;++i)scanf("%d",&k),root[i]=Modify(root[i-1],k);
scanf("%d",&Q);
for(i=1;i<=Q;++i){
scanf("%d%d%d%d%d",&L,&R,&ql,&qr,&k);
for(j=L;j<=R;++j)q[j]=root[ql-1],p[j]=root[qr];
printf("%d\n",Query((R-L+1)*(qr-ql+1)-k+1,L,R));
}
}

LGP5795题解的更多相关文章

  1. 2016 华南师大ACM校赛 SCNUCPC 非官方题解

    我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...

  2. noip2016十连测题解

    以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...

  3. BZOJ-2561-最小生成树 题解(最小割)

    2561: 最小生成树(题解) Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1628  Solved: 786 传送门:http://www.lyd ...

  4. Codeforces Round #353 (Div. 2) ABCDE 题解 python

    Problems     # Name     A Infinite Sequence standard input/output 1 s, 256 MB    x3509 B Restoring P ...

  5. 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解

    题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...

  6. 2016ACM青岛区域赛题解

    A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Jav ...

  7. poj1399 hoj1037 Direct Visibility 题解 (宽搜)

    http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...

  8. 网络流n题 题解

    学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...

  9. CF100965C题解..

    求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...

随机推荐

  1. web常用开发工具

    1.WebStorm[推荐] WebStorm 是jetbrains公司旗下一款JavaScript 开发工具.目前已经被广大中国JS开发者誉为"Web前端开发神器"." ...

  2. php 递归目录

    转载请注明来源:https://www.cnblogs.com/hookjc/ $TheFilePath='';function file_list($path){ global $TheFilePa ...

  3. iOS应用跳转至app store 评分页

    小功能之去AppStore评分 #pragma mark - 去AppStore评分 -(void)goToAppStore { NSString *str = [NSString stringWit ...

  4. Sublime Text3安装及汉化

    Sublime Text 是一款流行的代码编辑器软件,也是HTML和散文先进的文本编辑器,可运行在Linux,Windows和Mac OS X.也是许多程序员喜欢使用的一款文本编辑器软件. 下载地址: ...

  5. MySQL架构原理之存储引擎InnoDB_Undo Log

    Undo:意为撤销或取消,以撤销操作为目的,返回某个指定状态的操作. Undo Log:数据库事务开始之前会将要修改的记录存放到Undo日志里,当事务回滚时或者数据库崩溃时可以利用Undo日志撤销为提 ...

  6. 超简单集成 HMS ML Kit 实现最大脸微笑抓拍

    前言 如果大家对 HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的 APP 啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚 HMS ML Kit 文档中的 ML ...

  7. Nginx 配置apple-app-site-association

    ios突然给我发了如上链接和一个json,说他那边需要放一个 apple-app-site-association 文件用来支持他那边的功能,文件不需要后缀. 先说一下要求:线上官网的地址后面跟上他所 ...

  8. schtasks

    schtasks create    创建新的计划任务. 语法 schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo modifier ...

  9. Nacos2.X源码阅读总结

    前言 Nacos是一个Alibaba出品的高性能微服务时代产出的组件,集注册和配置中心为一体.那么Nacos为什么这么高性能呢?总结以下几点: 1:基于阿里自研的distro协议进行Nacos把不同节 ...

  10. 思迈特软件Smartbi:利用大数据为产业赋能,且看这家风电巨头的实践之路!

    随着大数据技术成为各行各业转型升级的"新动能",数字化风电.智慧风电场也成为风电行业的高频词,大数据已经逐渐被用于风场从测风到运维的各个环节. Smartbi的某客户是国内风电装备 ...