POJ2018 Best Cow Fences 二分
实数折磨人啊啊啊啊啊啊啊
好,实数应该是最反人类的东西了......
这个害得我调了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 二分的更多相关文章
- POJ-2018 Best Cow Fences(二分加DP)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10174 Accepted: 3294 Desc ...
- loj#10012\poj2018 Best Cow Fences(二分)
题目 #10012 「一本通 1.2 例 2」Best Cow Fences 解析 有序列\(\{a_i\}\),设\([l,r]\)上的平均值为\(\bar{x}\),有\(\sum_{i=l}^r ...
- POJ-2018 Best Cow Fences 二分
题意:找到一个连续区间,区间的长度至少大于f,现在要求这个区间的平均值最大. 题解: 二分找答案. 每次对于2分的mid值, 都把原来的区间减去mid, 然后找到一长度至少为f的区间, 他们的区间和& ...
- poj2018 Best Cow Fences[二分答案or凸包优化]
题目. 首先暴力很好搞,但是优化的话就不会了.放弃QWQ. 做法1:二分答案 然后发现平均值是$ave=\frac{sum}{len}$,这种形式似乎可以二分答案?把$len$移到左边. 于是二分$a ...
- POJ2018 Best Cow Fences —— 斜率优化DP
题目链接:https://vjudge.net/problem/POJ-2018 Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K T ...
- [USACO2003][poj2018]Best Cow Fences(数形结合+单调队列维护)
http://poj.org/problem?id=2018 此乃神题……详见04年集训队论文周源的,看了这个对斜率优化dp的理解也会好些. 分析: 我们要求的是{S[j]-s[i-1]}/{j-(i ...
- Poj2018 Best Cow Fences
传送门 题目大意就是给定一个长度为 n 的正整数序列 A ,求一个平均数最大的,长度不小于 L 的子序列. 思路: 二分答案. Code: #include<iostream> #incl ...
- poj2018——Best Cow Fences
Description Farmer John's farm consists of a long row of N (1 <= N <= 100,000)fields. Each fie ...
- 一本通 1434:【例题2】Best Cow Fences
Best Cow Fences 二分答案 + 前缀和 个人认为题意没有表述清楚,本题要求的是满足题意的连续子序列(难度大大降低了有木有). 本题的精度也是非常令人陶醉,请您自行体会吧! #includ ...
随机推荐
- 缓存session,cookie,sessionStorage,localStorage的区别
https://www.cnblogs.com/cencenyue/p/7604651.html(copy) 浅谈session,cookie,sessionStorage,localStorage的 ...
- vue页面传参和接参
https://blog.csdn.net/zhouzuoluo/article/details/81259298(copy) js** this.$router.push({ name: 'Flow ...
- Vue 刷新当前页面,并重新加载页面数据
业务场景:在管理后台,在执行完,增,删,改,操作的时候.我们需要刷新一下页面,重载数据.在JQ中我们会用到location.reload()方法,刷新页面:在vue中,这里需要用到一个 provide ...
- Linux中,去掉终端显示的当前目录的绝对路径
Linux中,去掉终端显示的当前目录的绝对路径 去~/.bashrc中,找到PS1变量的定义,如果没有,手动加上: 可以将显示输出到标题栏上: #export PS1="[e]2;u@H w ...
- Maven自动部署jar包到Neuxs
1. 修改maven配置(setting.xml) 添加neuxs的用户名和密码: <server> <id>my-deploy-release</id> &l ...
- Python——Radiobutton,Checkbutton参数说明
anchor : 文本位置: background(bg) : 背景色: foreground(fg) :前景色: borderwidth : 边框宽度: width : 组件的宽度: hei ...
- eclipse 等号左边代码补全
1: 2. 3.完成 “ctrl + shift + l” 代码补全成功
- Java 下载 HLS (m3u8) 视频
下载索引文件 public String getIndexFile() throws Exception{ URL url = new URL(originUrlpath); //下载资源 Buffe ...
- 当使用cokie进行数据交互时候,cookie只需存储该对象的id即可不需要存放其他数据;只需在写个接口根据cookie里面的对象id来创建对象
当使用cokie进行数据交互时候,cookie只需存储该对象的id即可不需要存放其他数据:只需在写个接口根据cookie里面的对象id来创建对象
- C# 调用短信接口
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...