Codeforces Global Round 17 C. Keshi Is Throwing a Party 题解 二分答案

Keshi Is Throwing a Party

题目描述

Keshi is throwing a party and he wants everybody in the party to be happy.

He has n n n friends. His i i i-th friend has i i i dollars.

If you invite the i i i-th friend to the party, he will be happy only if at most a i a_i ai people in the party are strictly richer than him and at most b i b_i bi people are strictly poorer than him.

Keshi wants to invite as many people as possible. Find the maximum number of people he can invite to the party so that every invited person would be happy.

输入描述

The first line contains a single integer t t t ( 1 ≤ t ≤ 1 0 4 ) (1\le t\le 10^4) (1t104) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer n n n ( 1 ≤ n ≤ 2 ⋅ 1 0 5 ) (1\le n\le 2 \cdot 10^5) (1n2105) — the number of Keshi’s friends.

The i i i-th of the following n n n lines contains two integers a i a_i ai and b i b_i bi ( 0 ≤ a i , b i < n ) (0 \le a_i, b_i < n) (0ai,bi<n).

It is guaranteed that the sum of n n n over all test cases doesn’t exceed 2 ⋅ 1 0 5 2 \cdot 10^5 2105.

输出描述

For each test case print the maximum number of people Keshi can invite.

样例输入 #1

3
3
1 2
2 1
1 1
2
0 0
0 1
2
1 0
0 1

样例输出 #1

2
1
2

代码

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;void solve()
{int n;cin >> n;vector<int> a(n), b(n);for (int i = 0; i < n; i++)cin >> a[i] >> b[i];auto check = [&](int x) -> bool{int cnt = 0;for (int i = 0; i < n; i++){if (cnt <= b[i] && x - cnt - 1 <= a[i]) // 贪心策略,每找到一个满足条件的朋友,邀请他cnt++;if (cnt >= x) // 邀请人数已足够,返回1return 1;}return 0;};// 二分答案,确定上下界为1和nint l = 1, r = n;while (l < r){int mid = (l + r + 1) / 2;if (check(mid))l = mid;elser = mid - 1;}cout << l << '\n';return;
}int main()
{ios::sync_with_stdio(0);cin.tie(0);int t;cin >> t;while (t--)solve();return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/21274.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

未来已来:Spring Boot引领数据库智能化革命

深入探讨了Spring Boot如何与现代数据库技术相结合&#xff0c;预测并塑造未来的数据访问趋势。本书不仅涵盖了Spring Data JPA的使用技巧&#xff0c;还介绍了云原生数据库的概念&#xff0c;微服务架构下的数据访问策略&#xff0c;以及AI在数据访问层的创新应用。旨在帮助开…

微信小程序如何进行页面跳转

微信小程序中的页面跳转可以通过多种方式实现&#xff0c;以下是几种主要的跳转方式及其详细解释&#xff1a; wx.navigateTo 功能&#xff1a;保留当前页面&#xff0c;跳转到应用内的某个页面。特点&#xff1a; 可以在新页面使用wx.navigateBack返回原页面。每跳转一个新页…

XFeat:速度精度远超superpoint的轻量级图像匹配算法

代码地址&#xff1a;https://github.com/verlab/accelerated_features?tabreadme-ov-file 论文地址&#xff1a;2404.19174 (arxiv.org) XFeat (Accelerated Features)重新审视了卷积神经网络中用于检测、提取和匹配局部特征的基本设计选择。该模型满足了对适用于资源有限设备…

在table中获取每一行scope的值

目的 当前有一份如下数据需要展示在表格中&#xff0c;表格的页面元素套了一个折叠面板&#xff0c;需要循环page_elements中的数据展示出来 错误实践 将template放在了折叠面板中&#xff0c;获取到的scope是空数组 <el-table-column label"页面元素" show-o…

【并发程序设计】15.信号灯(信号量)

15.信号灯(信号量) Linux中的信号灯即信号量是一种用于进程间同步或互斥的机制&#xff0c;它主要用于控制对共享资源的访问。 在Linux系统中&#xff0c;信号灯作为一种进程间通信&#xff08;IPC&#xff09;的方式&#xff0c;与其他如管道、FIFO或共享内存等IPC方式不同&…

分析和设计算法

目录 前言 循环不变式 n位二进制整数相加问题 RAM模型 使用RAM模型分析 代码的最坏情况和平均情况分析 插入排序最坏情况分析 插入排序平均情况分析 设计算法 分治法 总结 前言 循环迭代&#xff0c;分析算法和设计算法作为算法中的三个重要的角色&#xff0c;下面…

C/C++|基于回调函数实现异步操作

首先&#xff0c;要搞懂一点&#xff0c;异步操作本质上也是并发&#xff0c;我们想要在线程级别实现异步并发基本就靠三种方式&#xff1a; 多线程并发回调函数协程 今天我们讨论的是回调函数&#xff0c;我们如何通过回调函数来实现异步操作呢&#xff1f; 非阻塞I/O操作回…

Java——二进制原码、反码和补码

一、简要介绍 原码、反码和补码只是三种二进制不同的表示形式&#xff0c;每个二进制数都有这三个形式。 1、原码 原码是将一个数的符号位和数值位分别表示的方法。 最高位为符号位&#xff0c;0表示正&#xff0c;1表示负&#xff0c;其余位表示数值的绝对值。 例如&…

力扣刷题--LCP 66. 最小展台数量【简单】

题目描述&#x1f357; 力扣嘉年华将举办一系列展览活动&#xff0c;后勤部将负责为每场展览提供所需要的展台。 已知后勤部得到了一份需求清单&#xff0c;记录了近期展览所需要的展台类型&#xff0c; demand[i][j] 表示第 i 天展览时第 j 个展台的类型。 在满足每一天展台需…

C# SolidWorks 二次开发-显示配置

在 SolidWorks 的二次开发中&#xff0c;显示配置&#xff08;Display States&#xff09;是一个非常重要的功能。显示配置允许用户在同一个配置&#xff08;Configuration&#xff09;下保存不同的显示状态&#xff0c;如隐藏或显示的零件、不同的颜色和材质等。本文将向新的开…

PostgreSQL LATERAL 的工作原理

LATERAL 的工作原理 外部查询生成一行结果&#xff1a;LATERAL 子查询会对每一行外部查询结果进行评估。LATERAL 子查询执行&#xff1a;对于每一行&#xff0c;LATERAL 子查询会使用该行的列值来执行自己的查询。结果合并&#xff1a;子查询的结果与外部查询的行合并&#xf…

URL 与域名的关系

URL、域名和DNS 是互联网上资源定位和访问的关键要素&#xff0c;它们之间有紧密的关系。 URL 与域名的关系 URL&#xff08;Uniform Resource Locator&#xff09; URL 是统一资源定位符&#xff0c;用于标识互联网上的资源。它不仅包含域名&#xff0c;还包括访问资源所需…

如何解决游戏行业DDOS攻击问题

随着网络游戏行业的迅速发展&#xff0c;网络游戏问题也不可忽视&#xff0c;特别是目前网络攻击频发&#xff0c;DDoS攻击的简单化以及普及化&#xff0c;对游戏来说存在非常大的安全威胁。 随着受攻击对象的范围在不断地拓展&#xff0c;网络游戏这种这种新型并且有着丰厚利…

Scala编程基础3 数组、映射、元组、集合

Scala编程基础3 数组、映射、元组、集合 小白的Scala学习笔记 2024/5/23 14:20 文章目录 Scala编程基础3 数组、映射、元组、集合apply方法数组yield 数组的一些方法映射元组数据类型转换求和示例拉链集合flatMap方法 SetHashMap apply方法 可以new&#xff0c;也可以不new&am…

flink Jobmanager metaspace oom 分析

文章目录 现象作业背景分析现象分析类卸载条件MAT 分析 解决办法flink 官方提示 现象 通过flink 页面提交程序&#xff0c;多次提交后&#xff0c;jobmanager 报metaspace oom 作业背景 用户代码是flink 代码Spring nacos 分析 现象分析 从现象来看肯定是因为有的类没有被…

Python教程-快速入门基础必看课程06-List索引

摘要 该视频主要讲述了Python中for循环的基本结构和用法&#xff0c;特别是针对处理复杂数据结构如list of list的情况。首先介绍了for循环的基本概念&#xff0c;然后通过实例详细解释了如何遍历list中的元素&#xff0c;并解决了单层for循环无法处理list of list的问题。视频…

Linux系统-前台任务组,后台任务组

文章目录 前台进程后台进程新命令jobsfg 【后台进程组序号】ctrlz组合键信号 和 bg命令ctrlz组合键信号bg 【后台进程组序号】 session会话此时我们关闭本次的会话&#xff0c;我们的后台进程是否也会退出呢&#xff1f; 总结 前台进程 在我们远程登录Linux服务器后&#xff0…

【Java基础-注解】Java中注解的分类有哪些,如何自定义一个注解,并使用举例

在Java中&#xff0c;注解&#xff08;Annotation&#xff09;是一种元数据&#xff08;metadata&#xff09;的形式&#xff0c;用于为Java代码&#xff08;类、方法、变量、参数、包等&#xff09;提供信息。注解不会直接影响代码的执行&#xff0c;但可以被编译器用来生成代…

APP上架 篇四:计算机软件著作权证书和APP电子版权证书

文章目录 系列文章概念《计算机软件著作权证书》和《软件著作权认证证书》《APP电子版权证书》和《软件著作权认证证书》申请《计算机软件著作权证书》中国版权保护中心的官方网站申请流程费用详情软件更新后续维护申请《软件著作权认证证书》和《APP电子版权证书》“易版权”官…

创建__init__()方法

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 在创建类后&#xff0c;可以手动创建一个__init__()方法。该方法是一个特殊的方法&#xff0c;类似Java语言中的构造方法。每当创建一个类的新实例时…