题意:找到一个连续区间,区间的长度至少大于f,现在要求这个区间的平均值最大。

题解:

二分找答案。

每次对于2分的mid值, 都把原来的区间减去mid, 然后找到一长度至少为f的区间, 他们的区间和>=0。

代码:

  1. #include<cstdio>
  2. #include<algorithm>
  3. #include<vector>
  4. #include<queue>
  5. #include<map>
  6. #include<iostream>
  7. #include<cstring>
  8. using namespace std;
  9. #define Fopen freopen("_in.txt","r",stdin); freopen("_out.txt","w",stdout);
  10. #define LL long long
  11. #define ULL unsigned LL
  12. #define fi first
  13. #define se second
  14. #define pb push_back
  15. #define lson l,m,rt<<1
  16. #define rson m+1,r,rt<<1|1
  17. #define lch(x) tr[x].son[0]
  18. #define rch(x) tr[x].son[1]
  19. #define max3(a,b,c) max(a,max(b,c))
  20. #define min3(a,b,c) min(a,min(b,c))
  21. typedef pair<int,int> pll;
  22. const int inf = 0x3f3f3f3f;
  23. const LL INF = 0x3f3f3f3f3f3f3f3f;
  24. const LL mod = (int)1e9+;
  25. const int N = 1e5 + ;
  26. int n, f;
  27. int a[N];
  28. LL suf[N];
  29. bool check(int mid){
  30. for(int i = ; i <= n; ++i)
  31. suf[i] = suf[i-] + a[i] - mid;
  32. LL minval = ;
  33. for(int i = f; i <= n; ++i){
  34. minval = min(minval, suf[i-f]);
  35. if(suf[i] - minval >= ) return true;
  36. }
  37. return false;
  38. }
  39. int main(){
  40. scanf("%d%d", &n, &f);
  41. for(int i = ; i <= n; ++i)
  42. scanf("%d", &a[i]), a[i] *= ;
  43. int l = , r = inf;
  44. while(l <= r){
  45. int m = l+r >> ;
  46. if(check(m)) l = m + ;
  47. else r = m - ;
  48. }
  49. printf("%d\n", l-);
  50. return ;
  51. }

POJ-2018 Best Cow Fences 二分的更多相关文章

  1. POJ 2018 Best Cow Fences(二分+最大连续子段和)

    Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14601 Accepted: 4720 Desc ...

  2. Poj 2018 Best Cow Fences(分数规划+DP&&斜率优化)

    Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Description Farmer John's farm consists of a ...

  3. POJ 2018 Best Cow Fences(二分答案)

    题目链接:http://poj.org/problem?id=2018 题目给了一些农场,每个农场有一定数量的奶牛,农场依次排列,问选择至少连续排列F个农场的序列,使这些农场的奶牛平均数量最大,求最大 ...

  4. POJ 2018 Best Cow Fences (二分答案构造新权值 or 斜率优化)

    $ POJ~2018~Best~Cow~ Fences $(二分答案构造新权值) $ solution: $ 题目大意: 给定正整数数列 $ A $ ,求一个平均数最大的长度不小于 $ L $ 的子段 ...

  5. POJ 2018 Best Cow Fences(二分最大区间平均数)题解

    题意:给出长度>=f的最大连续区间平均数 思路:二分这个平均数,然后O(n)判断是否可行,再调整l,r.判断方法是,先求出每个数对这个平均数的贡献,再求出长度>=f的最大贡献的区间,如果这 ...

  6. POJ 2018 Best Cow Fences

    斜率优化. 设$s[i]$表示前缀和,$avg(i,j)=(s[j]-s[i-1])/(j-(i-1))$.就是$(j,s[j])$与$(i-1,s[i-1])$两点之间的斜率. 如果,我们目前在计算 ...

  7. POJ-2018 Best Cow Fences(二分加DP)

    Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10174 Accepted: 3294 Desc ...

  8. loj#10012\poj2018 Best Cow Fences(二分)

    题目 #10012 「一本通 1.2 例 2」Best Cow Fences 解析 有序列\(\{a_i\}\),设\([l,r]\)上的平均值为\(\bar{x}\),有\(\sum_{i=l}^r ...

  9. poj2018 Best Cow Fences[二分答案or凸包优化]

    题目. 首先暴力很好搞,但是优化的话就不会了.放弃QWQ. 做法1:二分答案 然后发现平均值是$ave=\frac{sum}{len}$,这种形式似乎可以二分答案?把$len$移到左边. 于是二分$a ...

  10. POJ2018 Best Cow Fences 二分

    实数折磨人啊啊啊啊啊啊啊 好,实数应该是最反人类的东西了...... 这个害得我调了0.5天才过. 大意是这样的:给你一个数列,求其中不少于f个的连续数的最大平均值. 不禁想起寒假的课程来... 此处 ...

随机推荐

  1. .Net Core CLR FileFormat Call Method( Include MetaData, Stream, #~)

    .Net Core  CLR PE 文件启动方法,找到函数入口点,调用整个.Net 程式宿主. 使用方法:可以利用Visual Studio新建一个控制台应用程序,然后生成DLL,替换掉本程序DLL, ...

  2. 几个linux下的命令

    sudo apt-get insall -f 修复依赖关系 sudo apt-get update    更新源 sudo apt-get upgrade 更新已经安装的包 sudo apt-get ...

  3. 关于Unity 中对UGUI制作任务系统的编程

    版权声明: 本文原创发布于博客园"优梦创客"的博客空间(网址:http://www.cnblogs.com/raymondking123/)以及微信公众号"优梦创客&qu ...

  4. MongoDB之数据库备份与恢复

    MongoDB之数据备份与恢复 一,需求 一段时间备份数据库数据,以防意外导致数据丢失 二,备份与恢复 2.1,数据库备份 1,常用命令格式 mongodump -h IP --port 端口 -u ...

  5. Activiti6系列(2)- 运行和编译

    前言 Activiti6.0在官网已经无法下载了,需要在Github上下载. 下载地址: https://github.com/Activiti/Activiti/releases/download/ ...

  6. Axure 使用 简单入门

    1.Axure 简介 Axure是快速原型工具,简单来说就是把自己的web或app想法快速的展示出来的工具.具体信息百科:https://baike.baidu.com/item/axure%20rp ...

  7. nginx负载均衡策略url_hash配置方法

    参考文章: https://docs.nginx.com/nginx/admin-guide/load-balancer/http-load-balancer/ 根据路径,进行一致性hash,具体的配 ...

  8. if else 深度优化

    一. if else表达式过于复杂 if ((condition1 && condition2 ) || ((condition2 || condition3) && ...

  9. Java-Servlet请求方式doXXX、service 具体分析

    说起Servlet的接收处理请求的方式,想必各位都并不陌生,如doGet.doPost.service... 那么他们的背后是如何执行?服务器怎么选择知道的?我们就此来探讨一下 本节案例的代码奉上: ...

  10. Java String引起的常量池、String类型传参、“==”、“equals”、“hashCode”问题 细节分析

    在学习javase的过程中,总是会遇到关于String的各种细节问题,而这些问题往往会出现在Java攻城狮面试中,今天想写一篇随笔,简单记录下我的一些想法.话不多说,直接进入正题. 1.String常 ...