二分的时候要特别注意一下下界L

#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define N 200005 ll n,s;
struct Node{
ll l,r;
}p[N];
int cmp(Node a,Node b){
return a.l<b.l;
} int judge(ll mid){
int cnt1=,cnt2=;
for(int i=;i<=n;i++){
if(p[i].l>mid)cnt2++;
if(p[i].r<mid)cnt1++;
}
if(cnt1>n/)return ;//偏大了 if(1.0*mid*(n/+)>s) return ; ll tot=,cnt=cnt1;
for(int i=;i<=n;i++){
if(p[i].l<=mid && p[i].r>=mid){
++cnt;
if(cnt<=n/)
tot+=p[i].l;
else if(cnt>=n/+)
tot+=mid;
}
else tot+=p[i].l;
} if(tot>s)return ;
return ;
} int main(){
int t;cin>>t;
while(t--){
cin>>n>>s;
for(int i=;i<=n;i++)
scanf("%lld%lld",&p[i].l,&p[i].r);
sort(p+,p++n,cmp); ll L=p[n/+].l,R=s,mid,ans;
while(L<=R){
mid=L+R>>;
if(judge(mid)){
ans=mid;
L=mid+;
}
else {
R=mid-;
}
} cout<<ans<<'\n';
}
}

最新文章

  1. Windows on Device 项目实践 2 - 感光灯制作
  2. Python 第五天 装饰器
  3. Go语言接口
  4. 常用 Git 命令清单(摘录)
  5. mysq错误(1)空用户创建库
  6. Mysql 数据库文件存储在哪个目录
  7. IOS DLNA开发(CyberLink和PlatinumKit)
  8. OpenCV——写手势识别碰到的各种错误
  9. MailBee的简单使用
  10. 使用数组实现队列----《数据结构与算法分析---C语言描述》
  11. cocos2d-x 3.0来做一个简单的游戏教程 win32平台 vs2012 详解献给刚開始学习的人们!
  12. Swift - 使用NSUserDefaults来进行本地数据存储
  13. poj1947(树形dp)
  14. JSP简单的练习-功能标签
  15. select中的文字垂直居中的问题
  16. Android Screen Monito
  17. Linux下*.tar.gz/.tar.bz2 文件解压缩安装命令
  18. DataGuard 单实例到RAC搭建
  19. 【WC2018】即时战略(动态点分治,替罪羊树)
  20. openStack 重新resize时会进行重新调度,可能在本机Resize 扩展资源,也可能存在的情况时 ,新扩展的资源在当前节点不足分配,整个虚拟机将进行迁移调度,进行异机迁移时需要迁移 的两台主机间能使用nova系统用户经passless登录

热门文章

  1. shell读取文件第一行和最后一行,小数的运算比较
  2. Druid数据源配置入门
  3. vue之slot用法
  4. JVM内存图
  5. 记录以下mysql5.7在win使用Navicat无法链接的问题
  6. Rust &lt;5&gt;:测试
  7. input file转base64
  8. 06、python的基础--&gt;编码小知识
  9. nodeType介绍及应用示例
  10. python+tushare获取沪深港股通持股明细