链接:https://ac.nowcoder.com/acm/contest/558/C
来源:牛客网

小猫在研究二元组。
小猫在研究最大值。
给定N个二元组(a1,b1),(a2,b2),…,(aN,bN),请你从中选出恰好K个,使得ai的最小值与bi的最小值之和最大。
请输出ai的最小值与bi的最小值之和

输入描述:

第一行两个正整数N,K,表示二元组数量与需要选的数量。

接下来N行,第i行两个正整数ai,bi。

输出描述:

一行一个正整数,表示最大的a_i的最小值与b_i的最小值之和。
示例1

输入

复制

3 2
1 1
2 3
3 1

输出

复制

3

备注:

1≤N≤10

5

,1≤a

i

,b

i

≤10

9

一开始以为是dp,最后发现是贪心。

按照x从大到小排序,然后优先队列维护对应的y,维护y的最小值。

因为x是排好序的,所以相当于降了一维。

先删再进 和先进再删都是可以的。虽然删除的可能是x和y都最小的,但是x并没有出去,但是不影响,因为要的是最大值,所以不会对结果造成影响。

代码1(先进再删):

 //C
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+; struct node{
ll a,b; friend bool operator<(node a,node b){
return a.a>b.a;
} }x[maxn]; int main()
{
ll n,k;
cin>>n>>k;
for(int i=;i<=n;i++){
cin>>x[i].a>>x[i].b;
}
sort(x+,x++n);
priority_queue<ll,vector<ll>,greater<ll> > q;
for(int i=;i<=k;i++){
q.push(x[i].b);
}
ll y=q.top();
ll ans=x[k].a+y;
for(int i=k+;i<=n;i++){
q.push(x[i].b);q.pop();
y=q.top();
if(ans<y+x[i].a) ans=y+x[i].a;
}
cout<<ans<<endl;
return ;
}

代码2(先删再进):

 //C
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e5+; struct node{
ll a,b; friend bool operator<(node a,node b){
return a.a>b.a;
} }x[maxn]; int main()
{
ll n,k;
cin>>n>>k;
for(int i=;i<=n;i++){
cin>>x[i].a>>x[i].b;
}
sort(x+,x++n);
priority_queue<ll,vector<ll>,greater<ll> > q;
for(int i=;i<k;i++){
q.push(x[i].b);
}
ll ans=-;
for(int i=k;i<=n;i++){
q.push(x[i].b);
ll y=q.top();
ans=max(ans,y+x[i].a);
q.pop();
}
cout<<ans<<endl;
return ;
}

牛客网 桂林电子科技大学第三届ACM程序设计竞赛 C.二元-K个二元组最小值和最大-优先队列+贪心(思维)的更多相关文章

  1. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 G.路径-带条件的树的直径变形-边权最大,边数偶数的树上的最长路径-树形dp

    链接:https://ac.nowcoder.com/acm/contest/558/G 来源:牛客网 路径 小猫在研究树. 小猫在研究路径. 给定一棵N个点的树,每条边有边权,请你求出最长的一条路径 ...

  2. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 D.寻找-树上LCA(树上a到b的路径上离c最近的点)

    链接:https://ac.nowcoder.com/acm/contest/558/D来源:牛客网 寻找 小猫在研究树. 小猫在研究树上的距离. 给定一棵N个点的树,每条边边权为1. Q次询问,每次 ...

  3. 牛客网 桂林电子科技大学第三届ACM程序设计竞赛 A.串串-后缀自动机模板题

    链接:https://ac.nowcoder.com/acm/contest/558/A来源:牛客网 A.串串 小猫在研究字符串. 小猫在研究字串. 给定一个长度为N的字符串S,问所有它的子串Sl…r ...

  4. 桂林电子科技大学第三届ACM程序设计竞赛 G 路径

    链接:https://ac.nowcoder.com/acm/contest/558/G来源:牛客网 小猫在研究树. 小猫在研究路径. 给定一棵N个点的树,每条边有边权,请你求出最长的一条路径,满足经 ...

  5. 分离 桂林电子科技大学第三届ACM程序设计竞赛

    链接:https://ac.nowcoder.com/acm/contest/558/H 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  6. 区间 桂林电子科技大学第三届ACM程序设计竞赛

    链接:https://ac.nowcoder.com/acm/contest/558/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  7. 重复 桂林电子科技大学第三届ACM程序设计竞赛

    题目链接:https://ac.nowcoder.com/acm/contest/558/B import java.util.HashSet; import java.util.Scanner; p ...

  8. 相聚 桂林电子科技大学第三届ACM程序设计竞赛

    题目链接:https://ac.nowcoder.com/acm/contest/558/D 就是求有多少块区域,用DFS就可以解决,一遇到一个1就从其开始深搜,将其所在的区域块覆灭(变为0),再遇到 ...

  9. 牛客网 中南林业科技大学第十一届程序设计大赛J题 二分+线段树

    https://www.nowcoder.com/acm/contest/124#question 题意  找第一个不小于K的数的下标,然后对它前一个数加一 解析   我们可以维护一个最大值数组  1 ...

随机推荐

  1. charles抓包详解http 与 https

    包工具多种多样,比较好使的还是Charles和Fiddler,下面就简单的介绍下HTTPS的相关原理并以Charles为例来介绍下如何抓取HTTPS协议的包 1.下载charles 可以去charle ...

  2. idea注册码激活防和谐

    1.到网站 http://idea.lanyus.com/ 获取注册码: 2.修改hosts文件,位于C:\Windows\System32\drivers\etc,添加一行,win10推荐使用not ...

  3. don't run elasticsearch as root.

    因为安全问题elasticsearch 不让用root用户直接运行,所以要创建新用户 第一步:liunx创建新用户  adduser XXX    然后给创建的用户加密码 passwd XXX    ...

  4. 51nod1312 最大异或和

    题目来源: TopCoder 基准时间限制:1 秒 空间限制:131072 KB 分值: 320  有一个正整数数组S,S中有N个元素,这些元素分别是S[0],S[1],S[2]...,S[N-1]. ...

  5. Session详解、ASP.NET核心知识(8)

    介绍一下Session 1.作用 Cookie是存在客户端,Session是存在服务器端,目的是一样的:保存和当前客户端相关的数据(当前网站的任何一个页面都能取到Session). 在本篇博文的姊妹篇 ...

  6. virtual Box在Centos 7上的安装

    1.首先,我们需要在oracle官网下载virtual Box的centos7版本: 下载地址为:http://download.virtualbox.org/virtualbox/5.0.12/Vi ...

  7. 微服务深入浅出(11)-- SpringBoot整合Docker

    添加Dockerfile 在目录src/main/resources目录下店家Dockerfile文件: From java MAINTAINER "Eric"<eric.l ...

  8. django的缓存,信号,序列化

    一 Django的缓存机制 1.1 缓存介绍 1.缓存的简介 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的 ...

  9. 查看Oracle数据库中的所有用户名

    select username from dba_users"

  10. flask插件系列之flask_uploads上传文件

    前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的. 安装 pip install flask_uploads 基本使用 # e ...