「题解」:$d$
问题 A: $d$
时间限制: 1 Sec 内存限制: 512 MB
题面
题面谢绝公开。
题解
赛时切掉了然而过程十分曲折。
贪心思路很好想。然而一开始错误以为是单峰。其实几个峰都有可能。
开场写了wqs二分,然后觉得不对最外围改成三分,大样例惨不忍睹,改写主席树A了。
扯远了。
正解贪心+堆。主席树也可以实现。我就按主席树的说了。
首先是贪心。去掉的m个一定是去掉了一些$ai$最小的,去掉了一些$bi$最小的。
所以考虑按照$ai$排序,枚举删掉前$i$个,对后面的做一个裸的kth-number就行了。
#include<bits/stdc++.h>
#define int long long
#define rint register int
using namespace std;
const int N=;
inline void read(int &A)
{
A=;int B=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')B=-;ch=getchar();}
while(ch>=''&&ch<=''){A=(A<<)+(A<<)+ch-'';ch=getchar();}
A=A*B;return ;
}
int T,n,m,ans;
struct node{int a,b;}mu[N];
int root[N],ls[N<<],rs[N<<],s[N<<],sz;
inline bool cmp(node A,node B){return A.a<B.a;}
inline void insert(int x,int &y,int l,int r,int v)
{
y=++sz;
s[y]=s[x]+;
if(l==r)return;
ls[y]=ls[x];rs[y]=rs[x];
int mid=(l+r)>>;
if(v<=mid)insert(ls[x],ls[y],l,mid,v);
else insert(rs[x],rs[y],mid+,r,v);
}
inline int get_rank(int k,int l,int r,int x)
{
if(r==x)return s[k];
int mid=(l+r)>>;
if(x<=mid)return get_rank(ls[k],l,mid,x);
else return s[ls[k]]+get_rank(rs[k],mid+,r,x);
}
inline int ask(int L,int R,int v)
{
int x=root[L-],y=root[R];
int l=,r=N;
while(l<=r)
{
int mid=(l+r)>>;
int t=get_rank(y,,N,mid)-get_rank(x,,N,mid);
if(t>=v)r=mid-;
else l=mid+;
}
return l;
}
signed main()
{
// freopen("1.in","r",stdin);
// freopen("s1.out","w",stdout);
read(T);
while(T--)
{
ans=sz=;read(n),read(m);
for(rint i=;i<=n;++i)
read(mu[i].a),read(mu[i].b);
sort(mu+,mu+n+,cmp);
for(rint i=;i<=n;++i)
insert(root[i-],root[i],,N,mu[i].b);
for(rint i=;i<=m;++i)
ans=max(ans,mu[i+].a*ask(i+,n,m-i+));
printf("%lld\n",ans);
}
}
ps.为数不多我这个蒟蒻在赛时写了对拍的题目。刚才发现它还在拍,拍了近两百万组了啊,纪念一下233。

「题解」:$d$的更多相关文章
- 「题解」「美团 CodeM 资格赛」跳格子
目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...
- 「题解」「HNOI2013」切糕
文章目录 「题解」「HNOI2013」切糕 题目描述 思路分析及代码 题目分析 题解及代码 「题解」「HNOI2013」切糕 题目描述 点这里 思路分析及代码 题目分析 这道题的题目可以说得上是史上最 ...
- 「题解」JOIOI 王国
「题解」JOIOI 王国 题目描述 考场思考 正解 题目描述 点这里 考场思考 因为时间不太够了,直接一上来就着手暴力.但是本人太菜,居然暴力爆 000 ,然后当场自闭- 一气之下,发现对 60pts ...
- 「题解报告」 P3167 [CQOI2014]通配符匹配
「题解报告」 P3167 [CQOI2014]通配符匹配 思路 *和?显然无法直接匹配,但是可以发现「通配符个数不超过 \(10\) 」,那么我们可以考虑分段匹配. 我们首先把原字符串分成多个以一个通 ...
- Linux 小知识翻译 - 「RAID」
最近术语「RAID」变得比较有名.「RAID」是指将多个HDD组合起来使用,从而提高存储可靠性的一种技术. 那么,关于 RAID 中的 「RAID 0」「RAID 1」「RAID 5」等各种「RAID ...
- 正则表达式从入门到放弃「Java」
正则表达式能做什么? 正则表达式可以用来搜索.编辑或处理文本. 「都懂它可以处理文本,可到底是怎么回事?」 正则表达式的定义 百度百科:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特 ...
- 「题解」:[loj2763][JOI2013]现代豪宅
问题 A: 现代豪宅 时间限制: 1 Sec 内存限制: 256 MB 题面 题目描述 (题目译自 $JOI 2013 Final T3$「現代的な屋敷」) 你在某个很大的豪宅里迷路了.这个豪宅由东 ...
- Scala 学习(10)之「集合 」
数组 定长数组 Array:采用()访问,而不是[],下标从 0 开始. val array1 = new Array[String](5) //创建数组 println(array1) //返回数组 ...
- JavaScript OOP 之「创建对象」
工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...
- Facebook 发布「流程」
时不时就会在面试过程中碰到有候选人问 Facebook 是否采用 Scrum 之类的敏捷方法,偶尔也会有中国的朋友问及 Facebook 上线流程.我通常会简单说几句,然后说「如果你真感兴趣的话,去搜 ...
随机推荐
- ubuntu14.04标题栏显示上下网速
首先当然是用 wget 下载 indicator-sysmonitor,终端执行命令: wget -c https://launchpad.net/indicator-sysmonitor/trunk ...
- Linux 进程间通信 消息队列
1.特点: 消息队列是IPC对象的一种 消息队列由消息队列ID来唯一标识 消息队列就是一个消息的列表.用户可以在消息队列中添加消息.读取消息等. 消息队列可以按照类型来发送/接收消息(消息的类型是正整 ...
- JS对象 数组排序sort() sort()方法使数组中的元素按照一定的顺序排列。 语法: arrayObject.sort(方法函数)
数组排序sort() sort()方法使数组中的元素按照一定的顺序排列. 语法: arrayObject.sort(方法函数) 参数说明: 1.如果不指定<方法函数>,则按unicode码 ...
- 微信小程序控件
1 scrollview 窗口view的滑动 <scroll-view scroll-y class='scroll-view-y' bindscrolltoupper="uppe ...
- IDEA使用maven插件打jar包流程
idea使用maven插件打jar包步骤以及遇到的问题 idea自带了maven工具,idea右边点击maven选项: 一.在pom中添加插件,直接复制就好,如下选项 <plugin> & ...
- .nett Core之路由配置
//配置路由 app.UseMvc(buider => { buider.MapRoute("Default", "{controller=home}/{actio ...
- Linux service,挂载,定时任务等常用服务
一.防火墙 防火墙根据配置文件/etc/sysconfig/iptables 来控制本机的“出.入”网络访问行为 其对行为的配置策略有四个策 1. 基础必备技能 查看防火墙状态 s ...
- Dart编程循环
有时,某些指令需要重复执行.循环是一种理想的方法.循环表示必须重复的一组指令.在循环的上下文中,重复被称为迭代 . 下图说明了循环的分类 让我们开始讨论确定循环.迭代次数是确定/固定的循环称为确定循环 ...
- MetalLB自建私有Kubernetes的LoadBalancer负载均衡类型服务
简介 在私有网络上运行 Kubernetes,和御三家相比,对 LoadBalancer 类型的服务的支持应该是众多表面差异中最醒目的一个了.类型为 LoadBalancer 的服务在 Kuberne ...
- NX二次开发-UFUN获取图层的状态UF_LAYER_ask_status
NX11+VS2013 #include <uf.h> #include <uf_ui.h> #include <uf_layer.h> UF_initialize ...