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/18244.shtml

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

相关文章

凤香的“蜜”密

执笔 | 文 清 编辑 | 古利特 “遇水则漏&#xff0c;遇酒生香”。酒海&#xff0c;一种大型盛酒容器&#xff0c;因盛酒量以“吨”计算&#xff0c;故称“海”&#xff0c;传于唐宋&#xff0c;兴盛于明清&#xff0c;距今有1400多年的历史。文人墨客笔下&#xff0c;也多有…

C++重点基础知识汇总大全

文章目录 一些基础知识点指针和引用 一些基础知识点 1、十进制的数字比较长的时候&#xff0c;可以加方便阅读到底是几位&#xff0c;输出的时候跟不加是一样的效果 // 十进制可以加 cout << 13890324 << endl; // 13890324 // 二进制前加0b cout << 0b111…

redis集群数据迁移

redis槽位 ​ redis集群搭建完后会自动在redis集群中内置16384个哈希槽(至于为啥是16384个,有兴趣的读者可进行深究)。当客户端向redis集群中插入数据时(key-value),redis会先对key使用crc16算法算出一个结果值,然后用此结果值对16384进行求余,此余数会对应到16384中的…

Java基础:桥接模式

桥接模式&#xff08;Bridge Pattern&#xff09;主要用于将抽象部分与其实现部分分离&#xff0c;使它们可以独立变化。这种模式通过创建一个抽象类和实现了该抽象类的具体类之间的桥梁来实现这一目的&#xff0c;从而让抽象类和它的实现可以以组合的方式耦合&#xff0c;而不…

【webrtc】rtp扩展:绝对发送时间、绝对采集时间、时间戳插值

WebRTC RTP 标头扩展审查绝对发送时间和绝对采集时间,二者是不同的当没有打开绝对采集时间戳的扩展时,webrtc依旧会使用AbsoluteCaptureTimeInterpolator 在接收测估算 绝对采集时间戳。Absolute Send Time 带宽估计算法用 The Absolute Send Time extension is used to stam…

LeetCode/NowCoder-链表经典算法OJ练习4

人的才华就如海绵的水&#xff0c;没有外力的挤压&#xff0c;它是绝对流不出来的。流出来后&#xff0c;海绵才能吸收新的源泉。&#x1f493;&#x1f493;&#x1f493; 目录 说在前面 题目一&#xff1a;环形链表 题目二&#xff1a;环形链表 II 题目三&#xff1a;随机…

《Python编程从入门到实践》day34

# 昨日知识点回顾 json文件提取数据、绘制图表渐变色显示 # 今日知识点学习 第17章 17.1 使用Web API Web API作为网站的一部分&#xff0c;用于与使用具体URL请求特定信息的程序交互&#xff0c;这种请求称为API调用。 17.1.1 Git 和 GitHub Git&#xff1a;分布式版本控制系…

vue-封装上下(垂直方向)轮播

需求&#xff1a;没有找到特别好的上下轮播插件-所以自己写了一个简单的demo 一.上下平滑轮播-移入停止-移出继续轮播 <!--* 消息滚动 --> <template><div class"news"><div id"roll" class"InfoBox" mouseover"thi…

Media Encoder 2024 for Mac媒体编码器安装教程ME2024安装包下载

安装 步骤 1&#xff0c;双击打开下载好的安装包。 2&#xff0c;选择install ame_24...双击打开启动安装程序。 3&#xff0c;点击install。 4&#xff0c;输入电脑密码。 5&#xff0c;软件安装中... 6&#xff0c;安装结束点击好。 7&#xff0c;返回打开的镜像 选择激活补…

零基础,想做一名网络安全工程师,该怎么学习?

​ 相比IT类的其它岗位&#xff0c;网络工程师的学习方向是比较明亮的。想要成为网络工程师&#xff0c;华为认证就是最好的学习方法。而网络工程师的从零开始学习就是从华为认证的初级开始学起&#xff0c;也就是HCIA&#xff0c;也就是从最基本的什么是IP地址、什么是交换机这…

响应式流和reactor框架进阶

响应式流和reactor框架进阶 响应式流创建、转换、处理 本文档主要介绍在响应式编程中如何从流中获取数据并处理。 前提条件 假设您已经能掌握Java基础、Maven使用、Lamda表达式、响应式编程等基础。 如何获取流中数据 &#x1f30f; 说明 1、不要试图从流中获取数据出来&a…

第⼀次页⾯加载会触发哪⼏个钩⼦?DOM 渲染在哪个周期中就已经完成?

在Vue中&#xff0c;第一次页面加载会触发以下钩子函数&#xff1a; beforeCreate&#xff1a;在实例初始化之后&#xff0c;数据观测(data observer) 和 event/watcher 事件配置之前被调用。 created&#xff1a;在实例创建完成后被立即调用。在这一步&#xff0c;实例已完成…

Angular(1):使用Angular CLI创建空项目

要创建一个空的 Angular 项目&#xff0c;可以使用 Angular CLI&#xff08;命令行界面&#xff09;。以下是使用 Angular CLI 创建一个新项目的步骤&#xff1a; 1、安装 Angular CLI&#xff1a; 打开你的命令行界面&#xff08;在 Windows 上是 CMD、PowerShell 或 Git Bas…

使用python绘制一个五颜六色的爱心

使用python绘制一个五颜六色的爱心 介绍效果代码 介绍 使用numpy与matplotlib绘制一个七彩爱心&#xff01; 效果 代码 import numpy as np import matplotlib.pyplot as plt# Heart shape function def heart_shape(t):x 16 * np.sin(t)**3y 13 * np.cos(t) - 5 * np.cos…

【Python设计模式07】工厂方法模式

工厂方法模式&#xff08;Factory Method Pattern&#xff09;是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使得一个类的实例化延迟到其子类。通过使用工厂方法模式&#xff0c;可以将对象的创建过程与使用…

微软:最新ChatGPT-4o模型,可在 Azure OpenAI上使用

北京时间5月14日凌晨&#xff0c;OpenAI 一场不到 30 分钟的发布会&#xff0c;正式发布了 GPT-4o&#xff0c;视频语音交互丝滑到吓人&#xff0c;还即将免费可用&#xff01; GPT-4o&#xff0c;其中的「o」代表「omni」&#xff08;即全面、全能的意思&#xff09;&#xff…

如何通过locust进行全链路压测

通过Locust进行全链路压测的具体步骤 Locust是一个开源的性能测试工具&#xff0c;支持分布式压测和高并发测试。它基于Python编写&#xff0c;使用方便且功能强大。本文将详细介绍如何使用Locust进行全链路压测&#xff0c;包括准备工作、测试脚本编写、压测执行和结果分析等…

BIO从提交到执行完毕过程分析

1.上层调用submit_bio()向块设备层提交IO请求,q->make_request_fn()=>__make_request()被调用,将BIO合并到已有的request或为BIO新分配一个request. 2.调用elv_merge(),首先尝试是否可以和上一次合并的request进行合并,如果不能合并,调用IO调度器提供的合并函数,尝试与I…

AIGC行业:巨头引领的创新浪潮与市场前景

AIGC&#xff08;AI Generated Content&#xff09;技术&#xff0c;作为新兴的技术力量&#xff0c;正逐渐改变内容创作的生态。在这一变革中&#xff0c;国内科技巨头如百度、阿里巴巴、腾讯等的积极参与&#xff0c;不仅为行业带来资本和技术支持&#xff0c;更预示着AIGC技…

react 下拉框内容回显

需要实现效果如下 目前效果如下 思路 : 将下拉框选项的value和label一起存储到state中 , 初始化表单数据时 , 将faqType对应的label查找出来并设置到Form.Item中 , 最后修改useEffect 旧代码 //可以拿到faqType为0 但是却没有回显出下拉框的内容 我需要faqType为0 回显出下拉…