【codeforces 19/10/24 div2】D. Salary Changing
时间:2019-10-25
本文章向大家介绍【codeforces 19/10/24 div2】D. Salary Changing,主要包括【codeforces 19/10/24 div2】D. Salary Changing使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1 #include<iostream> 2 #include<string> 3 #include<queue> 4 #include<stack> 5 #include<vector> 6 #include<map> 7 #include<cstdio> 8 #include<cstdlib> 9 #include<algorithm> 10 #include<set> 11 #include<list> 12 #include<iomanip> 13 #include<cstring> 14 #include<cmath> 15 #include<limits> 16 using namespace std; 17 18 #define au auto 19 #define debug(i) cout<<"<debug> "<<i<<" <\debug>"<<endl 20 #define mfor(i,a,b) for(register int i=(a);i<=(b);i++) 21 #define mrep(i,a,b) for(register int i=(a);i>=(b);i--) 22 #define LLL __int128 23 #define Re register 24 #define il inline 25 #define mem(a,b) memset(a,(b),sizeof(a)) 26 typedef pair<int, int> intpair; 27 typedef pair<long long int, long long int> llpair; 28 typedef long long int LL; 29 const int INF = 0x3f3f3f3f; 30 const long long int INFLL = 0x3f3f3f3f3f3f3f3f; 31 32 const int maxn = 100010; 33 34 LL n; 35 LL s; 36 LL ans; 37 int T; 38 llpair a[maxn]; 39 40 bool operator >(llpair a, llpair b) 41 { 42 return a.first > b.first; 43 } 44 45 bool check(LL x) 46 { 47 LL t = (n >> 1) + 1; 48 LL sum = 0; 49 mfor(i, 1, n) 50 { 51 if (t && a[i].first <= x && x <= a[i].second) 52 { 53 sum += x; 54 t--; 55 } 56 else 57 { 58 sum += a[i].first; 59 if (a[i].first >= x && t) t--; 60 } 61 } 62 if (t) return 0; 63 return sum <= s; 64 } 65 66 int main() 67 { 68 ios::sync_with_stdio(0); 69 cin.tie(0); 70 cout.tie(0); 71 cin >> T; 72 while (T--) 73 { 74 ans = 0; 75 cin >> n >> s; 76 mfor(i, 1, n) cin >> a[i].first >> a[i].second; 77 sort(a + 1, a + n + 1, greater<llpair>()); 78 LL l = a[(n >> 1) + 1].first, r = s; 79 ans = a[(n >> 1) + 1].first; 80 while (l <= r) 81 { 82 LL mid = (l + r) >> 1; 83 if (check(mid)) 84 { 85 ans = mid; 86 l = mid + 1; 87 } 88 else r = mid - 1; 89 } 90 cout << ans << endl; 91 } 92 }
原文地址:https://www.cnblogs.com/thjkhdf12/p/11737565.html
- 剑指offer代码解析——面试题24二叉搜索树的后序遍历序列
- 剑指offer代码解析——面试题23从上往下打印二叉树
- Spring Boot 集成Shiro和CAS
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- 剑指offer代码解析——面试题21包含min函数的栈
- 剑指offer代码解析——面试题19二叉树的镜像
- mysql高可用架构设计,处理高并发,大流量!
- 零基础入门深度学习 | 第三章:神经网络和反向传播算法
- 微信企业付款到个人钱包引发的坑之反思~!
- Intellij idea创建javaWeb以及Servlet简单实现
- 设计模式之代理模式之读写分离!!!
- Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
- 深入浅出Redis-redis底层数据结构(上)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Django+Vue开发生鲜电商平台之10.购物车、订单管理和支付功能
- 嵌入式linux之go语言开发(七)protobuf的使用
- 动手写简单的嵌入式操作系统一
- LeetCode 92 | 大公司常考的面试题,翻转链表当中指定部分
- 快速学习-Apollo从入门到精通
- dotnet 使用 SourceLink 将 NuGet 链接源代码到 GitHub 等仓库
- 嵌入式linux之go语言开发(八)存储模块的封装(一)
- QGIS制图中面积小的区域不显示注记
- linux 编译 c或cpp 文件为动态库 so 文件(最简单直观的模板)
- 满眼只有React和Vue,却对前端数据层几乎一无所知
- 嵌入式linux之go语言开发(八)存储模块的封装(二)
- 招商银行校招题二
- 小程序工程化系列(一):文件依赖分析
- ucgui在windows上的移植,及为go语言打造简易跨平台GUI的想法
- React setState 是异步执行还是同步执行?