题目

单调队列+前缀和

#include <bits/stdc++.h>
#define N 101001
using namespace std;
int n, s, t; int data[N];
double ans, temp[N], sum[N], l = -10000, r = 10000;
bool check(double a)
{
deque <int> q;
memset(sum, 0, sizeof(sum));
for (int i = 1; i <= n; i++)
temp[i] = (double) data[i] - a;
sum[0] = 0;
for (int i = 1; i <= n; i++)
sum[i] = sum[i - 1] + temp[i];
for (int i = 1; i <= n; i++)
{
if (i >= s)
{
while (q.size() && sum[i - s] < sum[q.back()])
q.pop_back();
q.push_back(i - s);
}
if (q.size() && q.front() < i - t)
q.pop_front();
if (q.size() && sum[i] >= sum[q.front()])
return true;
}
return false;
}
int main()
{
scanf("%d%d%d", &n, &s, &t);
for (int i = 1; i <= n; i++) scanf("%d", &data[i]);
while (r - l > 0.00001)
{
double mid = (l + r) / 2;
if (check(mid))
ans = l = mid;
else
r = mid;
}
// printf("%d", check(2));
printf("%.3lf\n", ans);
return 0;
}

最新文章

  1. Android入门(十):界面的布局方式及其实际应用
  2. Windows Azure Cloud Service (10) Role的生命周期
  3. svn(http)
  4. 夺命雷公狗-----React---7--组建的状态props和state
  5. 自定义View 实现软键盘实现搜索
  6. Highcharts 带有数据标签曲线图表
  7. 下 面 这 条 语 句 一 共 创 建 了 多 少 个 对 象 : String s=&quot;a&quot;+&quot;b&quot;+&quot;c&quot;+&quot;d&quot;;
  8. win7下安装maven3.1.1
  9. 使用 sitemesh/decorator装饰器装饰jsp页面(原理及详细配置)
  10. vijos1047题解
  11. 百度官方CDN公共库(jquery、dojo、Bootstrap)
  12. 【原创】大叔经验分享(13)spark运行报错WARN Utils: Service &#39;sparkDriver&#39; could not bind on port 0. Attempting port 1.
  13. .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证
  14. Shell学习之环境变量配置文件(三)
  15. Android IPC 结篇
  16. 通过编写PHP代码并运用“正则表达式”来实现对试题文档进行去重复、排序
  17. 好文推荐系列-------(5)js模块化编程
  18. Python学习笔记之逻辑回归
  19. 洛谷P4549裴蜀定理
  20. 在C++中调用DLL中的函数(3)

热门文章

  1. Ubuntu install android studio
  2. selenium2自动化测试实战--基于Python语言
  3. 数据结构之队列(queue)
  4. 在Windows上安装Redis
  5. canvas 绘制动态圆环进度条
  6. DB2检查数据在各节点分布情况
  7. 异常-No suppression parameter found for notification
  8. Linux 中常见的填空题
  9. 深入理解JVM内幕:从基本结构到Java 7新特性[转]
  10. 使用ESP8266制作一个微型气象站