2019.2.15 t3 平均值



#include <cstdio>
#include <iostream>
#include <cstring>
#include <cmath>
#include <cctype>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std; #define res register int
inline int read()
{
int x(),f(); char ch;
while(!isdigit(ch=getchar())) if(ch=='-') f=-;
while(isdigit(ch)) x=x*+ch-'',ch=getchar();
return f*x;
} inline int max(int x,int y){return x>y?x:y;}
inline double max(double x,double y){return x>y?x:y;}
inline int min(int x,int y){return x<y?x:y;} const int N=+;
int a[N],n,k,L,R,t;
int d[N],q[N],q1[N];
double s[N];//差分数组,前缀和数组 inline bool check(double m)
{
int l=,r=; //把i看成右端点(此处取得最大s),找s[i]最小的左端点
double ans(-1e9-);
for(res i= ; i<=n ; i++)
{
if(i-L+<=) continue;
while(l<=r && s[q[r]]>=s[i-L+]) r--;
//加入i-L+1(和之前比右端点向右挪了一位)
q[++r]=i-L+;
while(i-q[l]+>R && l <= r) l++;//排除非法
if(l<=r) ans=max(ans,s[i]-s[q[l]]);
}
return ans>m*k;
} inline bool judge(double m)
{
for(res i= ; i<=n ; i++)
s[i]=s[i-]+(double)d[i]-m;
return check(m);
}
int main()
{
freopen("average.in","r",stdin);
freopen("average.out","w",stdout);
int T=read();
while(T--)
{
double maxn(0.0);
n=read(); k=read(); L=read(); R=read();
for(res i= ; i<=n ; i++) a[i]=read();
for(res i= ; i<=n ; i++) d[i]=a[i]-a[i-];
double l=,r=1e9+;
int head(),tail(),head1(),tail1();
double ans(-100000000.0);
//特殊情况,取得最大值与最小值的两端点之间的距离小于L
//此处用线段树也可以
for(res i= ; i<=n ; i++)
{
while((head<=tail) && (a[q[tail]]>a[i])) tail--;
q[++tail]=i;
while((head1<=tail1) && (a[q1[tail1]]<a[i])) tail1--;
q1[++tail1]=i;
while((head<=tail) && i-q[head]+ > L) head++;
while((head1<=tail1) &&i-q1[head1]+ > L) head1++;
ans=max(ans,(double)(a[q1[head1]]-a[q[head]]) / (double)(L+k-));
}
while(r-l>0.0000001)
{
double mid=(l+r)/;
if(judge(mid)) l=mid,ans=max(ans,l);
else r=mid;
}
//翻转过来,再求一遍,即在刚才的右端点处取得最小s
reverse(a+,a+n+);
for(res i= ; i<=n ; i++) d[i]=a[i]-a[i-];
l=,r=1e9+;
while(r-l>0.0000001)
{
double mid=(l+r)/2.0;
if(judge(mid)) l=mid,ans=max(ans,l);
else r=mid;
}
printf("%.4lf\n",ans);
}
return ;
}
2019.2.15 t3 平均值的更多相关文章
- Data truncation: Incorrect datetime value: 'May 15, 2019 4:15:37 PM
因为系统在windows下测试过是正常的 windows下的jdk+ windows下安装的mysql 全部cases通过 linux下的jdk + windows下安装的mysql 新增和更新,影响 ...
- MyBatis 配置/注解 SQL CRUD 经典解决方案(2019.08.15持续更新)
本文旨在记录使用各位大神的经典解决方案. 2019.08.14 更新 Mybatis saveOrUpdate SelectKey非主键的使用 MyBatis实现SaveOrUpdate mybati ...
- CSP-S 2019 Day 2 T3 树的重心
CSP-S 2019 Day 2 T3 树的重心 题 给出了一个大小为\(n\)的树,树中结点从 1∼n 编号.小简单的课后作业是求出这棵树单独删去每条边后,分裂出的两个子树的重心编号和之和. \(n ...
- 纪中OJ 2019.02.15【NOIP提高组】模拟 B 组 梦回三国 比赛题解(第一个)
声明 旁边的同学小 H(胡)对我说: “哟,比赛拿了 140,强!要知道,如果哥第三题 AC 了,哥就 230 了,你个废柴!!!(比赛实际分数 130 额呵)” 顿时,千万草泥马从我心中奔腾而过:你 ...
- 2019.03.15 ZJOI2019模拟赛 解题报告
得分: \(20+45+15=80\)(三题暴力全写挂...) \(T1\):Lyk Love painting 首先,不难想到二分答案然后\(DP\)验证. 设当前需验证的答案为\(x\),则一个暴 ...
- 第十八次CSP认证游记 | 2019.12.15
CSP认证的考试是Haogod介绍的,取得一定成绩之后能有机会参加CCSP的分赛区和全国决赛.这次来参加认证要感谢老师的奔走为我们申请学校的报销,虽然最终因为这不是比赛所以报名费和差旅费下不来,但是老 ...
- Python脱产8期 Day03 2019/4/15
一 变量的命名规范 1.只能由 字母, 数字, _, 组成. 2. 不能以数字开头 3.避免与系统关键字重名:重名不会报错,但系统的功能就被自定义的功能屏蔽掉了(严重不建议这样来做) 4.以_开头的 ...
- 【2019.8.15 慈溪模拟赛 T1】插头(plugin)(二分+贪心)
二分 首先,可以发现,最后的答案显然满足可二分性,因此我们可以二分答案. 然后,我们只要贪心,就可以验证了. 贪心 不难发现,肯定会优先选择能提供更多插座的排插,且在确定充电器个数的情况下,肯定选择能 ...
- 【2019.8.15 慈溪模拟赛 T2】组合数(binom)(卢卡斯定理+高维前缀和)
卢卡斯定理 题目中说到\(p\)是质数. 而此时要求组合数向质数取模的结果,就可以用卢卡斯定理: \[C_x^y=C_{x\ div\ p}^{y\ div\ p}\cdot C_{x\ mod\ p ...
随机推荐
- MySQL5.6.35部署
1.下载软件 [root@localhost src]# wget -q http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glib ...
- zabbix结合grafana
一.下载grafana 下载地址: http://docs.grafana.org/installation/rpm/ https://s3-us-west-2.amazonaws.com/grafa ...
- 修改字符集AL32UTF8修改为ZHS16GBK详解
登陆sqlplus,在命令行输入 sqlplus sys/sys as sysdba;//登陆sqlplus SQL>SHUTDOWN IMMEDIATE; SQL>STARTUP MOU ...
- ECS 游戏架构 应用
转载自:http://blog.csdn.net/i_dovelemon/article/details/30250049 如何在cocos2d-x中使用ECS(实体-组件-系统)架构方法开发一个游戏 ...
- Python爬虫实战二之爬取百度贴吧帖子
大家好,上次我们实验了爬取了糗事百科的段子,那么这次我们来尝试一下爬取百度贴吧的帖子.与上一篇不同的是,这次我们需要用到文件的相关操作. 前言 亲爱的们,教程比较旧了,百度贴吧页面可能改版,可能代码不 ...
- Oracle 更新Opatch、打补丁
1.更新Opatch; 2.打补丁; 3.grid 打补丁; 1.更新Opatch(实验版本:oracle:11.2.0.3.0): 默认安装数据库后,在ORACLE_HOME 下会有个OPatch ...
- eclipse (android环境搭建)
如何安装java环境 http://jingyan.baidu.com/article/a24b33cd59b58e19fe002bb9.html eclipse安装教程 http://jingyan ...
- [干货来袭]C#7.0新特性(VS2017可用)(转)
出处:http://www.cnblogs.com/GuZhenYin/p/6526041.html 微软昨天发布了新的VS 2017 ..随之而来的还有很多很多东西... .NET新版本 ASP.N ...
- dbcp的销毁
使用commons-dbcp-1.2.2.jar的DataSource,发现每次动态编译后连接池中的连接不会释放,新的连接池建立有mssql多出一组连接,只有重新启动tomcat或weblogic才可 ...
- HDU 5119 Happy Matt Friends(DP || 高斯消元)
题目链接 题意 : 给你n个数,让你从中挑K个数(K<=n)使得这k个数异或的和小于m,问你有多少种异或方式满足这个条件. 思路 : 正解据说是高斯消元.这里用DP做的,类似于背包,枚举的是异或 ...