果然又抄的題解...

顯然答案具有單調性,而對于平均數計算的式子我們移一下項,

若s[l..r]>mid*(r-l+1)无解,

於是我們把每個數都減去一個mid,看和的正負即可,如果為正就可能有更大的平均數,

求子串和最大值可以用單調隊列維護,

#include<bits/stdc++.h>
using namespace std;
const int maxn=;
int n,s,t;
double a[maxn],sum[maxn];
int b[maxn],q[maxn];
bool check(double x){
int head=,tail=;
for(int i=;i<=n;i++)
a[i]=(double)b[i]-x;
sum[]=;
for(int i=;i<=n;i++)sum[i]=sum[i-]+a[i];
for(int i=;i<=n;i++){
if(i>=s){//前面不夠長的不處理
while(head<=tail && sum[i-s]<sum[q[tail]])tail--;//如果前綴和較大就彈出
q[++tail]=i-s;
}
if(head<=tail && q[head]<i-t)head++;//超出右端點
if(head<=tail && sum[i]-sum[q[head]]>=)return ;//判斷區間內和是否小於零
}
return ;
}
int main()
{
scanf("%d",&n);
scanf("%d%d",&s,&t);
for(int i=;i<=n;i++)scanf("%d",&b[i]);
double l=-,r=;
while(r-l>1e-){//多一位精度為了四捨五入
double mid=(l+r)/;
if(check(mid))l=mid;
else r=mid;
}
printf("%.3lf\n",l);
}

[題解](二分答案/單調隊列)luogu_P1419尋找段落的更多相关文章

  1. bzoj 1414: [ZJOI2009]对称的正方形 manacher算法+單調隊列

    1414: [ZJOI2009]对称的正方形 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 331  Solved: 149[Submit][Stat ...

  2. [題解](單調隊列dp)【2016noip福建夏令營】探險

    P1917 -- 探险 时间限制:1000MS      内存限制:131072KB 题目描述(explore.cpp) π+e去遗迹探险,遗迹里有 N 个宝箱,有的装满了珠宝,有的装着废品. π+e ...

  3. [題解](單調隊列/水)luogu_P3088擠奶牛

    d長度內區間最大值,單調隊列維護即可 由於需要滿足左右同時有2倍高度的牛才能更新答案,所以正反跑兩次 #include<bits/stdc++.h> using namespace std ...

  4. [題解](單調隊列dp)luogu_P1725琪露諾

    比較簡單的單調隊列,但是有一些要注意的 維護單調隊列的時候裡面存的是入隊時間,而不是i,因為前面有l個沒有入隊(不可能走進),所以把i减一个l以达到延迟入队的效果 #include<bits/s ...

  5. linux下c++實現簡單的生產者消費者隊列模式

    引言 生產者消費者是一個經典的模式 利用生產者,消費者和緩衝區降低了生產者和消費者之間的的耦合度 便於對生產者和消費者的修改 下面記錄的是一個經典的單一生產者多消費者的模式 設計思路 以隊列做為緩衝區 ...

  6. [題解](最短路/二分)luogu_P1462通往奧格瑞瑪的道路

    看到最大的最小值應該想到二分答案,這樣就解決了最小點權的問題,判血量就很好說,直接比較就行, 一個點是二分點權數組,複製一份然後排序,二分下標,速度較快 這麼簡單的題我竟然寫了這麼長時間 #inclu ...

  7. 【二分答案nlogn/标解O(n)】【UVA1121】Subsequence

    A sequence of N positive integers (10 < N < 100 000), each of them less than or equal 10000, a ...

  8. [USACO]地震 (二分答案+最优比率生成树详解)

    题面:[USACO 2001 OPEN]地震 题目描述: 一场地震把约翰家的牧场摧毁了, 坚强的约翰决心重建家园. 约翰已经重建了N个牧场,现在他希望能修建一些道路把它们连接起来.研究地形之后,约翰发 ...

  9. [題解]luogu_P3205/BZOJ_1996 合唱隊

    前言:基本上發題解的都是抄的題解所以 來源:題解 题目描述 为了在即将到来的晚会上有更好的演出效果,作为AAA合唱队负责人的小A需要将合唱队的人根据他们的身高排出一个队形.假定合唱队一共N个人,第i个 ...

随机推荐

  1. spring+mybatis项目整合

    前辈总结的很详细,贴出链接,参考学习 http://www.open-open.com/lib/view/open1392252233301.html

  2. ckplayer 中的style.swf 中的 style.xml 中的修改方法

    style.swf ---- > style.zip ---- > 解压成文件夹 ---- > 打开style.xml ---- > 修改 最重要的是修改保存style.xml ...

  3. hdu 1236 排名(排序)

    题意:按成绩排序 思路:排序 #include<iostream> #include<stdio.h> #include<string.h> #include< ...

  4. keras中的Flatten和Reshape

    最近在看SSD源码的时候,就一直不理解,在模型构建的时候如果使用Flatten或者是Merge层,那么整个数据的shape就发生了变化,那么还可以对应起来么(可能你不知道我在说什么)?后来不知怎么的, ...

  5. POJ 3764 The xor-longest( 树上异或前缀和&字典树求最大异或)

    In an edge-weighted tree, the xor-length of a path p is defined as the xor sum of the weights of edg ...

  6. 激活层和pooling的作用

    激活层: 激活函数其中一个重要的作用是加入非线性因素的,将特征映射到高维的非线性区间进行解释,解决线性模型所不能解决的问题 pooling层: 1. invariance(不变性),这种不变性包括tr ...

  7. SQL连接查询和嵌套查询详解

    连接查询 若一个查询同时涉及两个或两个以上的表,则称之为连接查询.连接查询是数据库中最最要的查询, 包括: 1.等值连接查询 2.自然连接查询 3.非等值连接查询 4.自身连接查询 5.外连接查询 6 ...

  8. MSTAR SERVICE结构

    程序结构: 1.主线程的构建 appMain.c/appMain_Create(): 2.主线程服务构建  _appMain_Task() 清空服务: memset(_appMain.appList, ...

  9. redis sentinel(哨兵)配置解读

    1 port <sentinel-port> :哨兵实例运行所在的端口(默认26379) 2 sentinel announce-ip:哨兵将会在gossip hello消息中使用指定的i ...

  10. 管理SSIS 日志

    转自:http://www.cnblogs.com/biwork/p/biworklog.html 一直准备写这么一篇有关 SSIS 日志系统的文章,但是发现很难一次写的很完整.因为这篇文章的内容可扩 ...