首先如果L=1,那就可以直接用一个优先队列来做

但它并不是1 所以要换个做法

假设我们已经知道第L的数是x,第R的数是y

那其实就只需要找到[x+1,y+1]这一段,然后再加上一定数量的x和y就是答案

于是可以枚举A[i],二分B[j]找到

然后考虑怎么找第L的数是多少

其实也是二分出一个数,然后比较L和小于它的个数

这个小于它的个数怎么算呢,还是二分......

复杂度$O(nlog^2n)$

 #include<bits/stdc++.h>
#define pa pair<int,int>
#define CLR(a,x) memset(a,x,sizeof(a))
using namespace std;
typedef long long ll;
const int maxn=1e5+; inline ll rd(){
ll x=;char c=getchar();int neg=;
while(c<''||c>''){if(c=='-') neg=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-'',c=getchar();
return x*neg;
} ll N,L,R,a[maxn],b[maxn],ans[maxn]; inline ll count(ll k){
ll re=;
for(int i=;i<=N;i++){
int l=,r=N,n=;
while(l<=r){
int m=l+r>>;
if(a[i]+b[m]<k) l=m+,n=m;
else r=m-;
}re+=n;
}return re;
} int main(){
ll i,j,k;
N=rd(),L=rd(),R=rd();
for(i=;i<=N;i++)
a[i]=rd();
for(i=;i<=N;i++)
b[i]=rd();
sort(a+,a+N+);sort(b+,b+N+);
ll l=a[]+b[],r=a[N]+b[N],nl,nr;
while(l<=r){
int m=l+r>>;
if(count(m)<L) l=m+,nl=m;
else r=m-;
}
l=a[]+b[],r=a[N]+b[N];
while(l<=r){
int m=l+r>>;
if(count(m)<R) l=m+,nr=m;
else r=m-;
}
k=;
for(i=;i<=N;i++){
int l=,r=N,x=N+,y=-;
while(l<=r){
int m=l+r>>;
if(a[i]+b[m]>nl) x=m,r=m-;
else l=m+;
}
l=,r=N;
while(l<=r){
int m=l+r>>;
if(a[i]+b[m]<nr) y=m,l=m+;
else r=m-;
}
for(j=x;j<=y;j++)
ans[++k]=a[i]+b[j];
}
sort(ans+,ans+k+);
for(i=L;i<=min(R,count(nl+));i++)
printf("%lld ",nl);
j=i-;
for(;i<=k+j;i++)
printf("%lld ",ans[i-j]);
for(;i<=R;i++)
printf("%lld ",nr);
return ;
}

noiac64 sort (二分答案)的更多相关文章

  1. HDU 5884 Sort(二分答案+计算WPL的技巧)

    Sort Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  2. HDU - 5884 Sort (二分答案+贪心)

    有n个数字,你需要把这n个数字合成一个数字,每次只能把k个数字合并成一个,花费为这k个数字的和. 给一个最大花费,问不超过这个最大花费的情况下,k的最小值. Sample Input 1 5 25 1 ...

  3. E. Santa Claus and Tangerines 二分答案 + 记忆化搜索

    http://codeforces.com/contest/752/problem/E 首先有一个东西就是,如果我要检测5,那么14我们认为它能产生2个5. 14 = 7 + 7.但是按照平均分的话, ...

  4. 字符串hash + 二分答案 - 求最长公共子串 --- poj 2774

    Long Long Message Problem's Link:http://poj.org/problem?id=2774 Mean: 求两个字符串的最长公共子串的长度. analyse: 前面在 ...

  5. HNOI2006-公路修建问题(二分答案+并查集)

    公路修建问题 OI island是一个非常漂亮的岛屿,自开发以来,到这儿来旅游的人很多.然而,由于该岛屿刚刚开发不久,所以那里的交通情况还是很糟糕.所以,OIER Association组织成立了,旨 ...

  6. POJ3294--Life Forms 后缀数组+二分答案 大于k个字符串的最长公共子串

                                                                              Life Forms Time Limit: 500 ...

  7. POJ 3579 Median(二分答案+Two pointers)

    [题目链接] http://poj.org/problem?id=3579 [题目大意] 给出一个数列,求两两差值绝对值的中位数. [题解] 因为如果直接计算中位数的话,数量过于庞大,难以有效计算, ...

  8. BZOJ 1734: [Usaco2005 feb]Aggressive cows 愤怒的牛( 二分答案 )

    最小最大...又是经典的二分答案做法.. -------------------------------------------------------------------------- #inc ...

  9. BZOJ 1717: [Usaco2006 Dec]Milk Patterns 产奶的模式( 二分答案 + 后缀数组 )

    二分答案m, 后缀数组求出height数组后分组来判断. ------------------------------------------------------------ #include&l ...

随机推荐

  1. jmeter的jtl日志转html报告常见报错笔记

    问题:生成的jmeter文件可以放任意位置 输入命令转换hmtl报告 PS D:\user\80003288\桌面\Ques> jmeter -g .\test1.jtl -e -o .\rep ...

  2. ssh登录

    ssh 用户名@IP地址 -p 端口号 ssh root@127.0.0.1 -p 2222

  3. 11 The superlative

    1 最高级用来表明三个或更多事物之间的关系.最高级是通过在形容词之前加 "the" 并在之后加 "-est",或在形容词之前加 "the most&q ...

  4. Java Serializable的使用和transient关键字使用小记(转载)

    一:Serializable 1.持久化的简单介绍: “持久化”意味着对象的“生存时间”并不取决于程序是否正在执行——它存在或“生存”于程序的每一次调用之间.通过序列化一个对象,将其写入磁盘,以后在程 ...

  5. Select2 4.0.5 API

    详细属性参考官方API,https://github.com/select2/select2/releases/tag/4.0.5 注:4.0.5版本API与3.x版本有差异,有些属性已废弃,以下列出 ...

  6. JSON Support in PostgreSQL and Entity Framework

    JSON 和JSONB的区别(What's difference between JSON and JSONB data type in PosgresSQL?) When should be use ...

  7. Python 中关于 round 函数的小坑

    参考: http://www.runoob.com/w3cnote/python-round-func-note.html

  8. Hadoop2.0 Namenode HA实现方案

    Hadoop2.0 Namenode HA实现方案介绍及汇总 基于社区最新release的Hadoop2.2.0版本,调研了hadoop HA方面的内容.hadoop2.0主要的新特性(Hadoop2 ...

  9. ES 6 系列 - 变量声明

    let 和 const let 声明 (一)基本用法 let 声明的变量只在块级作用域内有效,出了该块则报错,最常见且适合的地方在 for 循环中: var a = []; for (var i = ...

  10. 使用电脑adb给Essential Phone刷机 —(官方篇)

    用ADB给Essential Phone线刷升级 重要:请确保在刷机前已经解锁,关于解锁教程群里有! 准备 原版boot Twrp boot Magisk卡刷包 到官网下载OTA包 准备好Essent ...