桂林电子科技大学第三届ACM程序设计竞赛 C题

简介: 桂林电子科技大学第三届ACM程序设计竞赛 C题
小猫在研究二元组。
小猫在研究最大值。
给定N个二元组(a1,b1),(a2,b2),…,(aN,bN),请你从中选出恰好K个,使得ai的最小值与bi的最小值之和最大。
请输出ai的最小值与bi的最小值之和
题意:从这n个二元组中选择k个,使得ai的最小值与bi的最小值之和最大。
思路:将ai按从大小进行排序,由于ai已经排序好。如何从1-n进行遍历,将bi插入优先队列中(小根队)。
每次判断优先队列的大小是否等于k,保存此时的最大ans即可
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
struct node {
  int x, y;
}a[maxn];
bool cmp(node a, node b) {
  return a.x > b.x;
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0); cout.tie(0);
  int n, k;
  cin >> n >> k;
  for (int i = 1; i <= n; i++) {
    cin >> a[i].x >> a[i].y;  
  }
  sort (a + 1, a + n + 1, cmp);
  priority_queue<int, vector<int>,greater<int> > p;
  int ans = 0;
  for (int i = 1; i <= n; i++) {
    p.push(a[i].y);
    if (p.size() > k) {
      p.pop();
    }
    if (p.size() == k) {
      ans = max(ans, a[i].x + p.top());
    }
  }
  cout << ans << endl;
  return 0;
}
相关文章
|
Unix Linux
grep显示匹配行及其行号
grep显示匹配行及其行号
447 2
|
缓存 JavaScript 前端开发
vue2.0+vue3.0资料(尚硅谷)(五)
vue2.0+vue3.0资料(尚硅谷)
330 0
|
Kubernetes 监控 调度
在 Kubernetes 中应该如何设置 CPU 的 requests 和 limits
在 Kubernetes 中应该如何设置 CPU 的 requests 和 limits
499 0
|
8月前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
148 9
|
缓存 NoSQL Java
如何在Java中实现分布式缓存?
如何在Java中实现分布式缓存?
|
网络安全 数据安全/隐私保护
【网络安全 | Crypto】hidden key 江苏工匠杯
【网络安全 | Crypto】hidden key 江苏工匠杯
363 0
【网络安全 | Crypto】hidden key 江苏工匠杯
|
11月前
|
缓存 Ubuntu 网络协议
Linux中常见的问题
【10月更文挑战第2天】
175 3
|
网络协议 Ubuntu Linux
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
Linux 下 TFTP 服务搭建及 U-Boot 中使用 tftp 命令实现文件下载
858 0
|
前端开发 JavaScript 数据库
layui框架实战案例(20):常用条件判断和信息展示技巧(图片预览、动态表格、短信已读未读、链接分享、信息脱敏、内置框架页)
layui框架实战案例(20):常用条件判断和信息展示技巧(图片预览、动态表格、短信已读未读、链接分享、信息脱敏、内置框架页)
806 0
|
缓存 安全 Java
Shiro框架的知识点一网打尽,生命不息,学习不止
Shiro框架的知识点一网打尽,生命不息,学习不止
194 0