题目来源:牛客

题目大意:

N(N< 1 0 5 10^5 105)种饲料,每种饲料有flavor和spiciness两个参数(各自用一个 1 0 9 10^9 109内的整数表示)

N种饲料编号1~N,从中选出连续的一组饲料(比如[3,7]号饲料),这组饲料总的spiciness值为该组内各个饲料spiciness值的最大值,总的flavor值为该组内各个饲料flavor值的和

现求从N种饲料中取出的连续的一组饲料,在满足flavor值大于M(M< 1 0 18 10^{18} 1018)的前提下,spiciness的最小值为多少

分析:

二分,然后 O ( n ) O(n) O(n)判断解是否满足要求

二分的思路来源:答案的范围为 [ 1 , 1 0 9 ] [1,10^9] [1,109],且若有两个满足要求的解,值小的一定比值大的更优

如何判断解是否满足要求?

遍历一遍数组,利用贪心的思想,若一种饲料spiciness值小于等于x,则我们就将它的flavor值加上(因为目的是得到sum值大于M的区间)

代码:

#include <cstdio>
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
using namespace std;long long N,M;
long long a[100005],b[100005];bool check(long long x){long long sum=0;for(int i=1;i<=(int)N;i++){if(b[i]>x){sum=0;continue;}sum+=a[i];if(sum>=M) return true;}return false;
}int main(){scanf("%lld%lld",&N,&M);for(int i=1;i<=(int)N;i++)scanf("%lld%lld",&a[i],&b[i]);long long l=1,r=(long long )1e9+1;long long ans;while(l<=r){long long mid=(r-l)/2+l;if(check(mid)) ans=mid,r=mid-1;else l=mid+1;}printf("%lld\n",ans);return 0;
}

【二分】Haybale Feast相关推荐

  1. 牛客 24086 Haybale Feast

    牛客 24086 Haybale Feast 题目链接 题目描述 Farmer John is preparing a delicious meal for his cows! In his barn ...

  2. [USACO17DEC]Haybale Feast G

    题目链接:[USACO17DEC]Haybale Feast G 很显然s具有二分性,然后check每一个字段的和即可.因为s为正,所以全部加起来肯定是最优的. 不知道为什么没人写二分. AC代码: ...

  3. luogu P4085 [USACO17DEC]Haybale Feast(尺取法 + 线段树)

    C.luogu P4085 [USACO17DEC]Haybale Feast 题目链接 直接开一个线段树维护即可. 注意开ll 线段树维护最大值.注意下标别写错了,比如tr[r] #include& ...

  4. [bzoj5142][Usaco2017 Dec]Haybale Feast

    Orz w_yqts 在某王姓dalao的指导下暂时卡到rank1--Orz 二分答案 #include <cstdio> #define ll long long #define N 1 ...

  5. Luogu4085 [USACO17DEC]Haybale Feast (线段树,单调队列)

    \(10^18\)是要long long的. \(nlogn\)单调队列上维护\(logn\)线段树. #include <iostream> #include <cstdio> ...

  6. 【常用技巧精选】尺取法

    整理的算法模板合集: ACM模板 目录 1.反向扫描 1 找指定和的整数对 A.UVA1121 Subsequence B.POJ 3320 Jessica's Reading Problem C.l ...

  7. 线段树 + 二分答案:Haybale Guessing G

    参考文献:题解 P2898 [[USACO08JAN]haybale猜测Haybale Guessing] - レムの小屋 - 洛谷博客 题目链接:[USACO08JAN]Haybale Guessi ...

  8. 算法图解/二分查找/简单查找/选择排序/递归算法/快速排序算法/

    大 O 表示法 大 O 表示法在讨论运行时间时,log 指的都是 log2 大 O 表示法指出了算法有多快,让你能够比较操作数,它指出了算法运行时间的增速,而并非以秒为单位的速度. 大 O 表示法指出 ...

  9. 分治算法的设计思想(二分检索、二分归并排序)

    分治策略思想: 将原问题划分或者归结为规模较小的子问题. 递归或迭代求解每一个问题. 将子问题的解综合得到原问题的解. 性质: 子问题与原问题具有相同的性质. 子问题的求解彼此独立. 划分时子问题的规 ...

最新文章

  1. MapXtreme 操作地图时出现调用目标发生异常的解决方法--地图状态保存
  2. springboot 单元测试
  3. matlab选择结构
  4. CozyRSS开发记录8-解析一份RSS
  5. linux-2.6.32在mini2440开发板上移植(16)之LED 驱动程序移植
  6. linux c mysql教程_Linux c访问mysql 编写入门
  7. c语言指针算法分析怎么写,什么叫指针算法啊??
  8. 十年 | 在Java开发做了10年后,才学会此绝招,用于颠覆Java应用
  9. 嘉年华回顾丨PingCAP CEO 刘奇,带你探寻TiDB...
  10. 【算法】迪杰斯特拉算法 最短路径算法
  11. 2018年python工作好找吗-未来十年Python的前景会怎样?
  12. js修改地址栏url_前端实战总结如何在不刷新页面的情况下改变URL
  13. 验证码生成工具google authenticator
  14. nginx源码包安装
  15. 求助wpe封包遇到动态验证怎么办
  16. cas session共享
  17. 信息安全管理——网络安全监管
  18. SpringBoot线程池实现200w数据快速落库
  19. 数据结构考研:大O表示法最浅显易懂且详细深入的解释及与小o表示法的区别(十分钟必懂)
  20. matlab获取2的整数次幂,如何快速判断正整数是2的N次幂

热门文章

  1. 企业微信2020年度大会:微盛·企微管家荣获年度优秀合作伙伴
  2. 根据首期还款日和分期数两个参数计算每期还款日期
  3. 区块链赋能泛在电力物联网 | TokenInsight
  4. 编写程序,判断一个字符是否为小写字母,如果是,将它转换成大写字母,否则,不转换。)
  5. Python负数整除和取余
  6. 图解Topo拓扑排序 例题洛谷P4017 最大食物链计数
  7. [转]惠普知识管理的前世今生
  8. Discuz悬赏主题确定答案自动变更分类的方法
  9. 在ImportNew上翻译的文章列表
  10. 标准开道,金融业灾备阔步向前