题解0002:Best Cow Fences
题目描述:给定一个长度为n的正整数序列A。求一个平均数最大的,长度不小于L的子序列,输出这个平均数*1000。
题目链接:http://ybt.ssoier.cn:8088/problem_show.php?pid=1434
思路:用2分假定一个平均数,一步步缩小范围,最后求出这个平均数
代码(带注释):
#include<bits/stdc++.h>
using namespace std;
double a[100001],b[100001],sum[100001],eps=1e-5,l=-1e6,r=1e6;//l和r数大点保险
int main(){
int N,L;
cin>>N>>L;
for(int i=1;i<=N;i++){
cin>>a[i];
}
while(r-l>eps){//二分
double mid=(l+r)/2;//假定平均值
for(int i=1;i<=N;i++){
b[i]=a[i]-mid;//所有数-去这个假定平均值,得到新数组
}
for(int i=1;i<=N;i++){
sum[i]=sum[i-1]+b[i];//压缩
}
double ans=-1e10;
double minn=1e10;
for(int i=L;i<=N;i++){
minn=min(minn,sum[i-L]);
ans=max(ans,sum[i]-minn);
}//遍历sum数组,求区间最大和
if(ans>=0){//判断假定平均值是大是小
l=mid;
}else{
r=mid;
}
}
cout<<int(r*1000)<<endl;//完成
return 0;
}
题解0002:Best Cow Fences的更多相关文章
- POJ2018 Best Cow Fences —— 斜率优化DP
题目链接:https://vjudge.net/problem/POJ-2018 Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K T ...
- POJ 2018 Best Cow Fences(二分+最大连续子段和)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 14601 Accepted: 4720 Desc ...
- POJ-2018 Best Cow Fences(二分加DP)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10174 Accepted: 3294 Desc ...
- 一本通 1434:【例题2】Best Cow Fences
Best Cow Fences 二分答案 + 前缀和 个人认为题意没有表述清楚,本题要求的是满足题意的连续子序列(难度大大降低了有木有). 本题的精度也是非常令人陶醉,请您自行体会吧! #includ ...
- 1434:【例题2】Best Cow Fences
1434:[例题2]Best Cow Fences 时间限制: 1000 ms 内存限制: 65536 KB提交数: 263 通过数: 146 [题目描述] 给定一个长度为n的 ...
- 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(分数规划+DP&&斜率优化)
Best Cow Fences Time Limit: 1000MS Memory Limit: 30000K Description Farmer John's farm consists of a ...
- POJ 2018 Best Cow Fences(二分最大区间平均数)题解
题意:给出长度>=f的最大连续区间平均数 思路:二分这个平均数,然后O(n)判断是否可行,再调整l,r.判断方法是,先求出每个数对这个平均数的贡献,再求出长度>=f的最大贡献的区间,如果这 ...
- LOJ P10012 Best Cow Fences 题解
每日一题 day48 打卡 Analysis 二分答案,判断序列的平均值是否大于等于mid 具体怎么实现呢? 将序列减去mid,再用前缀和来维护平均值就好了 #include<iostream& ...
随机推荐
- 34、python并发编程之多进程(操作篇)
目录: 一 multiprocessing模块介绍 二 Process类的介绍 三 Process类的使用 四 守护进程 五 进程同步(锁) 六 队列(推荐使用) 七 管道 八 共享数据 九 信号量( ...
- 暑假撸系统3- petty热更新 mybatis自动填充时间字段!
经过了昨天纠结技术选型,和一大堆xml配置,终于把架子搭好了.因为最近一次做java项目也在好多年以前了(毕竟用了pytohn以后谁也不想再回来java了),java的生态发生了长足的进步,本来想从原 ...
- dbTable
标签: <my-Double-Table double-Table="doubleTable" head-List="headList" select-M ...
- 如何在 Flutter 中集成华为云函数服务
介绍 云函数是一项 Serverless 计算服务,提供 FaaS(Function as a Service)能力,可以帮助开发者大幅简化应用开发与运维相关事务,降低应用功能的实现门槛,快速构建业务 ...
- 基于C#打造的OPCUA客户端应用
OPC UA (Unified Architecture),是工业4.0的标准通信规范,大家现在都不陌生. 目前大部分工控行业的应用系统都逐渐的在向OPC UA靠拢,所以随着iot的发展,OPC UA ...
- 【C# 锁】SpinWait结构 -同步基元|同步原语
锁提供了线程安全三要素中的 有序性.二.SpinWait是同步锁的核心,而Thread是SpinWait的核心. Spinwait结构 完成代码:SpinWait.cs (dot.net) SpinW ...
- CVE-2022-22947 Spring Cloud Gateway SPEL RCE复现
目录 0 环境搭建 1 漏洞触发点 2 构建poc 3 总结 参考 0 环境搭建 影响范围: Spring Cloud Gateway 3.1.x < 3.1.1 Spring Cloud Ga ...
- 教程10--hexo搭建
1.安装node.js 下载系统对应的node安装包一直下一步完成 2.安装git 参照git安装https://www.cnblogs.com/daxiang2008/p/10687616.html ...
- 一、ES6基础
一.ECMAScript和JavaScript关系 JavaScript 的创造者 Netscape 公司,决定将 JavaScript 提交给标准化组织 ECMA,希望这种语言能够成为国际标 准,但 ...
- 国产化之银河麒麟安装.NetCore-包管理器方式
背景 某个项目需要实现基础软件全部国产化,其中操作系统指定银河麒麟,数据库使用达梦V8,CPU平台的范围包括x64.龙芯.飞腾.鲲鹏等. 考虑到这些基础产品对.NETCore的支持,最终选择了3.1版 ...