题意

对于第i个人的权值为i,一个人能被加入序列当且仅当,数列中大于i的数至多不超过ai,小于i的数至多不超过bi,问最多能选多少人

题解

很明显的二分答案,那么需要考虑的就是怎么写check了.直接上代码解释

bool check(int mid)//当前是否能够选取mid人
{int cnt = 0;//当前已经选取了cnt人for (int i = 1; i <= n; i++)//有小到大枚举当前已经选了cnt人,//那么要在加入一人就是cnt+1的位置且最后满足mid个人则序列一定为//1...cnt cnt+1 ....mid,因为是从小到大枚举所以左边一定小于num[i],则只只要满足下面一个不等式即可加入数列中(比当前数小的个数为cnt,比当前数大的数为mid-(cnt+1))if (a[i]>=mid-1-cnt && b[i]>=cnt) ++cnt;return cnt >= mid;
}

完整代码

#include<bits/stdc++.h>
using namespace std;
const int N = 2e5 + 10;
int a[N], b[N];
int n;
bool check(int mid)
{int cnt = 0;for (int i = 1; i <= n; i++)if (a[i]>=mid-1-cnt && b[i]>=cnt) ++cnt;return cnt >= mid;
}
void slove()
{cin >> n;for (int i = 1; i <= n; i++){cin >> a[i] >> b[i];}int l = 0, r = n;while (l < r){int mid = (l + r+1) / 2;if (check(mid))l = mid;else r = mid - 1;}cout << l << endl;}
int main()
{int t;cin >> t;while (t--){slove();}
}

Keshi Is Throwing a Party相关推荐

  1. Codeforces-1610 C: Keshi Is Throwing a Party

    Codeforces-1610 C: Keshi Is Throwing a Party 题目传送门:Codeforces-1610 C 题目 题目截图 样例描述 题目大意   Keshi 正在举行一 ...

  2. Codeforces 1612C. Keshi Is Throwing a Party

    Codeforces 1612C. Keshi Is Throwing a Party 思路 首先容易发现,选择的人数具有单调性,是可以二分的 假设最后答案选了 xxx 个人,那么对于一个人有影响的, ...

  3. Codeforces 1610C Keshi Is Throwing a Party

    题意 Keshi有 nnn 个朋友,第 iii 个朋友有 iii 美元.如果邀请第 iii 个朋友做客,必须满足宴会上最多有 aia_iai​ 个人比他富有,最多 bib_ibi​ 个人比他贫穷. 问 ...

  4. C. Keshi Is Throwing a Party(二分答案),最/佳牛围栏,average。

    题目链接 题意: 一共n个人,第 i 个人的财富度为 i,每个人有两个属性 ai 和 bi,分别表示最多能够容忍的比自己富和比自己穷的人数. 问,最多能够选多少人,使得所有人的要求都可以满足. 思路: ...

  5. 1610C - Keshi Is Throwing a Party 题解

    题目传送门: Problem - 1610C - Codeforces 设  中的  表示你所选出的数列的已知最大长度限制,而且是只管右限制的最大长度限制. 比如说第一个数右限制是 4,那么最大长度限 ...

  6. 【二分】C. Keshi Is Throwing a Party

    题目链接: https://codeforces.com/problemset/problem/1610/C n个盆友,第i个盆友有i块钱,小明想尽可能邀请更多的人.第i个人高兴有个条件,比他钱多的不 ...

  7. XGB模型训练报错 terminate called after throwing an instance of ‘std::bad_alloc‘ what()

    背景:需要做XGB模型增量训练,但是因为一些原因没有得到原来的XGB模型,只有dump文件. XGB模型的dump文件是它的树结构存储为一个相对人类好理解的模型文件,但并不能被重新加载进XGB进行增量 ...

  8. 异常通知(After Throwing Advice)

    在方法抛出异常退出时执行的通知.ApplicationContext 中在<aop:aspect> 里面使用<aop:after-throwing>元素进行声明.例如,Serv ...

  9. terminate called after throwing an instance of 'std::out_of_range' what(): basic_string::substr

    运行时报错: terminate called after throwing an instance of 'std::out_of_range' what():  basic_string::sub ...

最新文章

  1. 如何为你的博客文章自动添加版权信息?
  2. 人脸识别国标拟规定:不得强制刷脸、预测偏好 不对14周岁以下人脸识别
  3. oracle配置ipv6_配置 IPv6 接口
  4. gbdt 算法比随机森林容易_数据挖掘面试准备(1)|常见算法(logistic回归,随机森林,GBDT和xgboost)...
  5. yuv图片拼接 java_java利用ffmpeg把图片转成yuv格式
  6. android nv21 nv12,直接进行nv21或者nv12的resize
  7. SPI通信协议详解(四)
  8. 如何利用家谱制作软件快速修谱录入
  9. 720度全景场景HTML5源码,直接在浏览器中运行
  10. C语言任意输入三个数构成三角形,随便输入三个数,看能否组成一个三角形
  11. ant design vue做导入导出excel
  12. python剪刀石头布_Python Tkinter教程系列01:剪刀石头布游戏
  13. 2019春第二次课程实际实验报告
  14. 《初等数论》:最大公因数与最小公倍数
  15. 计算机硬件检测标准模板,计算机硬件性能检测相关实验模板.doc
  16. 外卖跑腿app源码,小程序上点餐+送货二合一
  17. hibernate先删除数据,紧接着执行插入时的异常解决之道——中间不能调用flush()、clear()等方法...
  18. 利用LibreOffice进行WORD转PDF
  19. 盘式滑环对材料的要求
  20. 中国纳米抛光浆料行业未来产销需求与投资策略建议报告2022版

热门文章

  1. 多因素身份认证之手机推送认证
  2. bzoj1123 [POI2008]BLO 圆方树
  3. 高分一号、二号样例数据下载
  4. java 服务自启动
  5. python求所有参数的乘积_python 通过可变参数计算n个数的乘积方法
  6. 五个强盗分金币的问题分析(博弈论)
  7. Word文档Aspose.Words使用教程:构建适用于Android的Word转PDF应用程序
  8. Tp5生成带头像二维码海报(带文字描述,居中调整)
  9. 天嵌科技恭祝大家元宵节快乐
  10. Vue 中常见的面试题/知识点整理