codeforces D Salary Changing
题意:给你n个人,和s块钱,每个人都有一个工资区间,你给所有人都发工资。然后要他们工资的中位数最大。
思路:二分找那个值。那个值要满足至少有n/2+1个工资区间内。
#include<cstdio>
#include<cstring>
#include<queue>
#include<cmath>
#include<algorithm>
#include<map>
#include<vector>
#include<string>
#include<set>
#define ll long long
using namespace std;
int l[];
int r[];
int n;
ll s;
int check(int md)
{
int k=(n+)/;
vector<int> M;
for(int i=;i<=n;i++)
{
int v=max(l[i],md);
if(r[i]<v) continue;
M.push_back(v-l[i]);
}
if((int)M.size()<k)
return ;
ll sum=;
sort(M.begin(),M.end());
for(int i=;i<k;i++)
sum+=M[i];
return sum<=s;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{ scanf("%d%lld",&n,&s);
for(int i=;i<=n;i++)
{
scanf("%d%d",&l[i],&r[i]);
s-=l[i];
}
int st=,ed=1e9;
while(st<ed)
{
int md=(st+ed+)/;
if(check(md))
{
st=md;
}
else
ed=md-;
}
printf("%d\n",st);
}
}
codeforces D Salary Changing的更多相关文章
- Codeforces 1251D Salary Changing
D. Salary Changing 大意: 有n个变量, 每个变量有一个取值区间, 要求给这n个变量赋值, 使得n个变量的和不超过S且中位数尽量大(n一定为奇数) 二分答案, 中位数大于等于mid就 ...
- codeforces 1251D Salary Changing (二分+贪心)
(点击此处查看原题) 题意分析 一共有s元钱,要用这些钱给n个人发工资,发给每个人的工资si有最少和最多限制 si ∈[li,ri],在发给n个人的总工资小于s的情况下,要求发给n个人中的工资的中位数 ...
- Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
链接: https://codeforces.com/contest/1251/problem/D 题意: You are the head of a large enterprise. n peop ...
- CodeForces 396C On Changing Tree
On Changing Tree Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on CodeForces ...
- D. Salary Changing(找中位数)
题:https://codeforces.com/contest/1251/problem/D 题意:给你n个单位需要满足达到的区间,再给个s,s是要分配给n的单位的量,当然∑l<=s,问经过分 ...
- CodeForces - 396C On Changing Tree(树状数组)
题目大意 给定一棵以1为根的树,初始时所有点为0 给出树的方式是从节点2开始给出每一个点的父亲 然后是 $m$ 次操作,分为两种 $1 v,k,x$ 表示在以v为根的子树中的每一个点上添加 $x-i* ...
- 二分题 D - Salary Changing codeforce
题意:给出n个人(n是奇数),s钱:s为总的可以付工钱的钱: 每一个工人有一个付工钱的区间,只要在这个区间范围内,随便一个数都可以当作给这个工人付了钱: 老板要付给每个工人钱,并且付钱的中位数要尽可能 ...
- Educational Codeforces Round 75
目录 Contest Info Solutions A. Broken Keyboard B. Binary Palindromes C. Minimize The Integer D. Salary ...
- ATC/TC/CF
10.25 去打 CF,然后被 CF 打了. CF EDU 75 A. Broken Keyboard 精神恍惚,WA 了一发. B. Binary Palindromes 比赛中的憨憨做法,考虑一个 ...
随机推荐
- ball小游戏
2019第三次课程设计实验报告 一.实验项目 -- ball 二.实验功能描述: 玩家通过wsad移动下面的挡板,接住下落的弹球,弹击上头的球获得积分,弹球没接住则比赛结束,计算积分 三.项目模板结构 ...
- SELECT 与 SET给标量赋值
本文转自 :https://blog.csdn.net/perddy/article/details/4033406 SQL Server推荐使用 SET 而不是 SELECT 对变量进行赋值.当表达 ...
- net 架构师-数据库-sql server-001-SQL Server中的对象
1.1 数据库的构成 1.2 数据库对象概述 1.2.1 数据库对象 RDBMS 关系数据库管理系统 对象:数据库.索引.事务日志.CLR程序集.表 .报表.文件组.全文目录.图表.用户自定义数据类型 ...
- SCUT - 161 - 灯游 - 数学
https://scut.online/p/161 很显然一个数被开关的概率是他的因子的个数的占比. 然后又很显然其实这个总的概率就是一个二项式求和. 模拟这个过程WA了8发.正常,毕竟浮点误差累积比 ...
- http协议中常见的状态码以及请求方式,http协议的组成
请求状态码: 2xxx:表示请求成功,例如200. 3xxx:表示请求被重定向,表示完成请求,需要进一步操作,例如 302. 4xxx:表示请求错误,例如:404,资源没有找到. 5xxx:表示服务器 ...
- jQuery进阶第三天(2019 10.12)
一.原生JS快捷的尺寸(属性)(注意这些属性的结果 不带PX单位) clientWidth/clientHeight =====> 获得元素content+padding的宽/高: offse ...
- 使用`html-webpack-plugin`插件配置启动页面
由于使用`--contentBase`指令的过程比较繁琐,需要指定启动的目录,同时还需要修改index.html中script标签的src属性,所以推荐大家使用`html-webpack-plugin ...
- CSS中:first-child伪类
使用 :first-child 伪类来选择作为某个元素的第一个子元素.这个特定伪类很容易遭到误解,所以有必要举例来说明.考虑以下标记: 如下: html: <div> <p>T ...
- 您的浏览器没有获得Java Virtual Machine(JVM)支持。可能由于没有安装JVM或者已安装但是没有启用。请安装JVM1.5或者以上版本,如果已安装则启用它。
您的浏览器没有获得Java Virtual Machine(JVM)支持.可能由于没有安装JVM或者已安装但是没有启用.请安装JVM1.5或者以上版本,如果已安装则启用它. https://www.j ...
- Linux 设置定时清除buff/cache的脚本
Linux 设置定时清除buff/cache的脚本 查看内存缓存状态 [root@heyong ~]# free -m total used free shared buff/cache availa ...