「题解」:$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 上线流程.我通常会简单说几句,然后说「如果你真感兴趣的话,去搜 ...
随机推荐
- SYSTEM_HANDLE_TABLE_ENTRY_INFO
typedef struct _SYSTEM_HANDLE_TABLE_ENTRY_INFO { USHORT UniqueProcessId; USHORT CreatorBackTraceInde ...
- vimtutor - Vim 教程
总览 (SYNOPSIS) vimtutor 描述 (DESCRIPTION) Vimtutor 打开 Vim 教程. 它首先 考备 文件, 这样 就可以 在 不改变 原文件 的情况下 修改 当前文件 ...
- 【单调队列优化】[CF372C] Watching Fireworks is Fun
突然发现我可能单调队列都打不来了...我太菜了... 这道题显然有$$f[i][j]=min\{f[i-1][k]+\vert j-a[i] \vert\}$$ 则$ans=\sum_{i=1}^{m ...
- XOR linked list--- 异或链表
异或链表的结构 这是一个数据结构.利用计算机的的位异或操作(⊕),来降低双向链表的存储需求. ... A B C D E ... –> next –> next –> next –& ...
- 基于javaweb人脸识别注册登录系统
---恢复内容开始--- 现在是2019年,人脸识别技术已经相当成熟了,百度自2017年发布人脸识别技术,已经被广泛应用,不管从现在的iphoneX掀起的面部解锁到手机应用端的各种人脸认证,这一技术已 ...
- quartz的使用(一)
1.quartz是什么? Quartz 是一个完全由 Java 编写的开源作业调度框架,支持各种灵活的应用方式,并同时支持分布式和集群能力.2.quartz的基本要素 2.quartz的基本要素 Sc ...
- R语言 数据类型
R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...
- Python获取房价信息和导出EXCEL
房价与生活息息相关,那么各地区房价情况和差别咋样呢? 可以打开网站或手机APP去查询一下,不过查看到的数据有限,很不过瘾~ 作为一个合格的程序员,要懂得用代码解决问题! 第一步:打开一个房产交易平台 ...
- css内容超出显示省略号
CSS实现单行.溢出显示省略号(…) 把要设置的显示省略号的标签,加上以下的属性 overflow: hidden; /*超出不显示*/ text-overflow: ellipsis;/* 超出内容 ...
- thinkphp 表单合法性检测
在处理表单提交的数据的时候,建议尽量采用Think\Model类提供的create方法首先进行数据创建,然后再写入数据库. 大理石平台厂家 create方法在创建数据的同时,可以进行更为安全的处理操作 ...