问题 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$的更多相关文章

  1. 「题解」「美团 CodeM 资格赛」跳格子

    目录 「题解」「美团 CodeM 资格赛」跳格子 题目描述 考场思路 思路分析及正解代码 「题解」「美团 CodeM 资格赛」跳格子 今天真的考自闭了... \(T1\) 花了 \(2h\) 都没有搞 ...

  2. 「题解」「HNOI2013」切糕

    文章目录 「题解」「HNOI2013」切糕 题目描述 思路分析及代码 题目分析 题解及代码 「题解」「HNOI2013」切糕 题目描述 点这里 思路分析及代码 题目分析 这道题的题目可以说得上是史上最 ...

  3. 「题解」JOIOI 王国

    「题解」JOIOI 王国 题目描述 考场思考 正解 题目描述 点这里 考场思考 因为时间不太够了,直接一上来就着手暴力.但是本人太菜,居然暴力爆 000 ,然后当场自闭- 一气之下,发现对 60pts ...

  4. 「题解报告」 P3167 [CQOI2014]通配符匹配

    「题解报告」 P3167 [CQOI2014]通配符匹配 思路 *和?显然无法直接匹配,但是可以发现「通配符个数不超过 \(10\) 」,那么我们可以考虑分段匹配. 我们首先把原字符串分成多个以一个通 ...

  5. Linux 小知识翻译 - 「RAID」

    最近术语「RAID」变得比较有名.「RAID」是指将多个HDD组合起来使用,从而提高存储可靠性的一种技术. 那么,关于 RAID 中的 「RAID 0」「RAID 1」「RAID 5」等各种「RAID ...

  6. 正则表达式从入门到放弃「Java」

    正则表达式能做什么? 正则表达式可以用来搜索.编辑或处理文本. 「都懂它可以处理文本,可到底是怎么回事?」 正则表达式的定义 百度百科:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特 ...

  7. 「题解」:[loj2763][JOI2013]现代豪宅

    问题 A: 现代豪宅 时间限制: 1 Sec  内存限制: 256 MB 题面 题目描述 (题目译自 $JOI 2013 Final T3$「現代的な屋敷」) 你在某个很大的豪宅里迷路了.这个豪宅由东 ...

  8. Scala 学习(10)之「集合 」

    数组 定长数组 Array:采用()访问,而不是[],下标从 0 开始. val array1 = new Array[String](5) //创建数组 println(array1) //返回数组 ...

  9. JavaScript OOP 之「创建对象」

    工厂模式 工厂模式是软件工程领域一种广为人知的设计模式,这种模式抽象了创建具体对象的过程.工厂模式虽然解决了创建多个相似对象的问题,但却没有解决对象识别的问题. function createPers ...

  10. Facebook 发布「流程」

    时不时就会在面试过程中碰到有候选人问 Facebook 是否采用 Scrum 之类的敏捷方法,偶尔也会有中国的朋友问及 Facebook 上线流程.我通常会简单说几句,然后说「如果你真感兴趣的话,去搜 ...

随机推荐

  1. 众所周知,static修饰的成员只实例化一次,而string类型每次赋值都会重新创建一个实例,那么用static修饰string呢?

    string 类型每次实例化都会重新创建一个实例: 解释:string 类型重载了运算符 “=” ,每次 “=” 操作都是一次 “new”. static 修饰符的成员只实例化一次?? 解释:这个说法 ...

  2. ADS 命令行命令介绍

    armasm 1. 命令:armasm [选项] -o 目标文件 源文件 2. 选项说明 -Errors 错误文件名        ;指定一个错误输出文件 -I 目录[,目录]          ;指 ...

  3. cross compile 交叉编译 ffmpeg

    ffmpeg 支持各种压缩格式的视频解码库,经常出现在各种播放器中,交叉编译也是一项麻烦的事情. 1. 下载ffmpeg 源码包   http://ffmpeg.org/releases/ffmpeg ...

  4. Spring 在Web中的应用

    Spring 在Web中的应用 在web项目开发中,不会直接实例化ApplicationContext对象,如果想用到ApplicationContext,一般的步骤: 配置一个监听器ContextL ...

  5. DEV插件下的控件Grid和Gridlookupedit控件的结合使用

    创建GridlookupEtid控件 设置其对应属性: 设置属性 this.gridLookUpEdit1.Properties.TextEditStyle = DevExpress.XtraEdit ...

  6. python的一个简单日志记录库glog的使用

    一. glog的简介 glog所记录的日志信息总是记录到标准的stderr中,即控制台终端. 每一行日志记录总是会添加一个谷歌风格的前缀,即google-style log prefix, 它的形式如 ...

  7. js的三种消息框alert,confirm,prompt

    原文:http://blog.csdn.net/lixiang0522/article/details/7764730 <html> <head> <script typ ...

  8. 【转】Git 修改已提交的commit注释

    https://www.jianshu.com/p/098d85a58bf1 [重点] 通过git rebase -i HEAD~2 你想修改哪条注释 就把哪条注释前面的pick换成edit git ...

  9. thinkphp sql解析缓存

    除了查询缓存之外,ThinkPHP还支持SQL解析缓存,因为ThinkPHP的ORM机制,所有的SQL都是动态生成的,然后由数据库驱动执行. 直线电机厂家 所以如果你的应用有大量的SQL查询需求,那么 ...

  10. mysql数据库名有 横杠 横线 - dash 怎么办

    '''SELECT date FROM `%s` ORDER BY date DESC LIMIT 1''' % 'ZXS-QZCSCRB-3' 重点就是这个符号 ` 键盘左上角