实数折磨人啊啊啊啊啊啊啊

好,实数应该是最反人类的东西了......

这个害得我调了0.5天才过。

大意是这样的:给你一个数列,求其中不少于f个的连续数的最大平均值。

不禁想起寒假的课程来...

此处应该二分ans,每次把数列减去ans后判断是否有不少于f的一段sum>=0

大喜过望,写了个二分,然后发现不会O(1)判断...

冥思苦想无果之后不由得去看题解。发现要维护前缀和和1~i-f+1的最小前缀和即可。

然后就被实数卡了一天。。。

最后发现还是写的朴素点好。要相信出题人头脑简单不会拿一大堆if来写二分。

AC代码:

 #include <cstdio>
#include <algorithm>
using namespace std;
const int INF = 0x7f7f7f7f, N = ;
const double eps = 1e-;
int f[N], n, F;
double a[N];
bool check(double k) {
for(int i=;i<=n;i++) {
a[i] = f[i] - k;
a[i] += a[i-];
}
double small = , sum=; // small != INF, small = 0
for(int i = F; i <= n; i++) {
sum = a[i] - small;
if(sum >= ) {
return true;
}
small = min(small, a[i-F+]);
}
return false;
} int main() {
//freopen("in.in","r",stdin);
//freopen("my.out","w",stdout);
scanf("%d%d",&n,&F);
int large = -INF, small = INF;
for(int i=;i<=n;i++) {
scanf("%d",&f[i]);
large = max(large, f[i]);
small = min(small, f[i]);
}
double l = small, r = large, mid;
while(r-l>eps) {
//printf("%.10lf %.10lf \n",l,r);
mid = (l + r) / ;
if(check(mid)) {
l = mid;
}
else {
r = mid;
}
} printf("%d",(int)(r*));
return ;
}

AC代码在此

POJ2018 Best Cow Fences 二分的更多相关文章

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

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

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

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

  3. POJ-2018 Best Cow Fences 二分

    题意:找到一个连续区间,区间的长度至少大于f,现在要求这个区间的平均值最大. 题解: 二分找答案. 每次对于2分的mid值, 都把原来的区间减去mid, 然后找到一长度至少为f的区间, 他们的区间和& ...

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

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

  5. POJ2018 Best Cow Fences —— 斜率优化DP

    题目链接:https://vjudge.net/problem/POJ-2018 Best Cow Fences Time Limit: 1000MS   Memory Limit: 30000K T ...

  6. [USACO2003][poj2018]Best Cow Fences(数形结合+单调队列维护)

    http://poj.org/problem?id=2018 此乃神题……详见04年集训队论文周源的,看了这个对斜率优化dp的理解也会好些. 分析: 我们要求的是{S[j]-s[i-1]}/{j-(i ...

  7. Poj2018 Best Cow Fences

    传送门 题目大意就是给定一个长度为 n 的正整数序列 A ,求一个平均数最大的,长度不小于 L 的子序列. 思路: 二分答案. Code: #include<iostream> #incl ...

  8. poj2018——Best Cow Fences

    Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each fie ...

  9. 一本通 1434:【例题2】Best Cow Fences

    Best Cow Fences 二分答案 + 前缀和 个人认为题意没有表述清楚,本题要求的是满足题意的连续子序列(难度大大降低了有木有). 本题的精度也是非常令人陶醉,请您自行体会吧! #includ ...

随机推荐

  1. liunx 运维知识四部分

    一. 权限介绍及文件权限测试 二. 目录权限测试 三. 默认控制权限umask 四. chown修改属性和属组 五. 网站安全权限介绍 六. 隐藏属性介绍 七. 特殊权限s 八. 特殊权限t 九. 用 ...

  2. NIO服务器与客户端

    这里客户端没有采用NIO形式 服务器: package com.util.Server.NIO; import javax.print.DocFlavor;import java.io.IOExcep ...

  3. Percona-xtrabackup 使用详解与原理

    现在有个需求需要对使用 innodb 的数据库进行热备.网上查了很多工具皆推荐 Percona-xtrabackup 于是就仔细了解调研一番. 我们可以前往 https://www.percona.c ...

  4. 如何在集合中巧用Where来查找相关元素

    在我们的项目中我们经常会查找一些集合中的重要元素,当然我们可以使用常规的foreach循环和if语句来查询,但是我们要学会使用System.Linq命名空间下面的静态类Enumerable下面的静态方 ...

  5. postfix 邮箱设置及常见错误

    postfix 邮箱设置及常见错误 1.如果装了sendmail的话,先卸载了. yum remove sendmail 2.安装 Postfix yum install postfix 3.更改默认 ...

  6. Attention Model

    参考1: https://blog.csdn.net/malefactor/article/details/50550211 attention部分实现:  https://blog.csdn.net ...

  7. PDO访问Mysql数据库

    $dsn = 'mysql:host=127.0.0.1;dbname=myblog'; $username = 'root'; $pwd = '; $pdo = new PDO($dsn,$user ...

  8. react 自我小计

    1.react中的方法调用,在onClick事件中不需要加小括号. <button onClick={this.show}>方法的调用</button> show(){ con ...

  9. DOSD用scratch的方式训练通用目标检测,性能很高

    推荐一篇今年ICCV上基于DenseNet的general object detection的工作.这是目前已知的第一篇在完全脱离ImageNet pre-train模型的情况下使用deep mode ...

  10. Opencv画图操作

    1. 画矩形 MyRect rect;rect.left = 5;rect.top = 5;rect.right = 100;rect.bottom = 100;IplImage * pColorIm ...