点击打开链接

题意:

思路: 

一个车能不能选只和它的油箱容量有关,所以按照油箱排序,找到一个合适的最小容量即可,再求一下最优即可。

#include<iostream>
#include<algorithm>
#include<string>
#include<cmath>
#include<vector>
#include<set>
#include<map>
#include<stack>
#include<queue>
#include<cstdio>
#include<cstring>
#define ll long long
using namespace std;const int maxn = 2e5 + 10;int n, k, s, t, mint;struct node
{int c, tank;friend bool operator < (node a, node b){return a.tank < b.tank;}}a[maxn];int g[maxn];bool check(int x)
{int nowtank = a[x].tank;double tx = 1.0 * mint;for(int i = 1; i <= k; i++){nowtank = a[x].tank;int len = g[i] - g[i-1];if(len > nowtank)return false;else if(nowtank > 2*len)nowtank = 2*len;tx = tx - 1.0*(nowtank - len);}nowtank = a[x].tank;int len = s - g[k];if(len > nowtank)return false;else{if(nowtank > 2*len)nowtank = 2*len;tx = tx - 1.0*(nowtank - len);}if(tx>0)return false;elsereturn true;
}int main()
{scanf("%d%d%d%d", &n, &k, &s, &t);if(s > t){cout<<-1<<endl;return 0;}for(int i = 1; i <= n; i++){scanf("%d%d", &a[i].c, &a[i].tank);}for(int i = 1; i <= k; i++){scanf("%d", &g[i]);}sort(a+1, a+1+n);sort(g+1, g+k+1);mint = t-2*(t-s);int l = 0, r = n+1, mid;bool flag =false;while(l < r){mid = (l+r)/2;if(check(mid)){r = mid;flag = true;}elsel = mid+1;}int minc = 2e9;if(!flag){cout<<-1<<endl;return 0;}for(int i = r; i <= n; i++)minc = min (minc, a[i].c);printf("%d\n", minc);return 0;
}

codeforces738C相关推荐

最新文章

  1. 独家 | 机器学习模型应用方法综述
  2. MongoDB学习第一篇 --- Mac下使用HomeBrew安装MongoDB
  3. star ccm+ 用户指南_star-ccm边界层处理方法
  4. C语言 · 身份证号码升级
  5. DALL·E这波超进化,画质艺术感双飞升,还学会了无痕P图
  6. CF452F Permutations/Luogu2757 等差子序列 树状数组、Hash
  7. 警惕开源代码库中的安全隐患
  8. c++ 结构体遍历_PBRT-E4.3-层次包围体(BVH)(一)
  9. 信息学奥赛一本通 1137:加密的病历单 | OpenJudge NOI 1.7 12
  10. 计算机应用第7章在线测试,《计算机应用基础》第07章在线测试
  11. 【白皮书分享】2020-2021年运营从业者薪资及职业现状调查白皮书.pdf(附下载链接)...
  12. ModuleNotFoundError: No module named 'tornado'解决办法
  13. linux的make命令是什么,Linux中make, make install命令分别是什么
  14. java电子邮件收发系统的设计与实现_基于Java Mail的电子邮件收发系统的设计与实现毕业论文.doc...
  15. chromium 安装flash player
  16. 牛客练习赛41:球的体积并【球缺】
  17. 联想和柳传志的5G标准投票辩白和抗争为啥那么苍白?
  18. IBTrACS Technical Documentation
  19. python表达直角坐标系_在直角坐标中,x、 y 是坐标系中任意点的位置,用 x 和 y 表示第一象限或第二象限的 Python 表达式为 。_测量省赛理论答案_学小易找答案...
  20. 上海市证券、保险公司一览

热门文章

  1. ios与android功能特点,浅谈iOS与Android的区别
  2. 异地软件交付沟通感悟
  3. 新东方手机摄影大赛自动投票脚本
  4. 宝可梦 图片识别python_使用Tensorflow从0开始搭建精灵宝可梦的检测APP
  5. 牛听听显示服务器正在升级,升级了牛听听读书牛3.0版本,陪着孩子玩的停不下来...
  6. 数学建模算法总结——04层次分析法
  7. 数据处理中四种基本数据类型的区别(Nominal, ordinal, interval, ratio data)
  8. 机器学习和深度学习的资料大全
  9. 健身房管理系统(需求分析)
  10. 服务端渲染ssr(server side render)