Problem Description
Consider a simple sequence which only contains positive integers as a1, a2 ... an, and a number k. Define ave(i,j) as the average value of the sub sequence ai ... aj, i<=j. Let’s calculate max(ave(i,j)), 1<=i<=j-k+1<=n.

Input
There multiple test cases in the input, each test case contains two lines.
The first line has two integers, N and k (k<=N<=10^5).
The second line has N integers, a1, a2 ... an. All numbers are ranged in [1, 2000].

Output
For every test case, output one single line contains a real number, which is mentioned in the description, accurate to 0.01.

PS：这就是传说中的来自数据组数的恶意吗，看上去似乎有100组大数据的感觉……G++超时的可以尝试用C++交，HDU的C++读入比G++快，而且优化的程度也不同。

``` #include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include <cctype>
using namespace std;
typedef long long LL;

;

int sum[MAXN];
int n, k;

char c = getchar();
while(!isdigit(c)) c = getchar();
;
+ c - ', c = getchar();
return res;
}

struct Point {
int x, y;
Point() {}
Point(int x, int y): x(x), y(y) {}
Point operator - (const Point &rhs) const {
return Point(x - rhs.x, y - rhs.y);
}
double slope() {
return (double)y / x;
}
};

LL cross(const Point &a, const Point &b) {
return (LL)a.x * b.y - (LL)a.y * b.x;
}

LL cross(const Point &o, const Point &a, const Point &b) {
return cross(a - o, b - o);
}

Point que[MAXN], p;

double solve() {
;
head = ; tail = -;
for(int i = k; i <= n; ++i) {
p = Point(i - k, sum[i - k]);
], que[tail], p) <= ) --tail;
que[++tail] = p;

p = Point(i, sum[i]);
], p) >= ) ++head;
res = max(res, (p - que[head]).slope());
}
return res;
}

int main() {
while(scanf("%d%d", &n, &k) != EOF) {
; i <= n; ++i) sum[i] = sum[i - ] + readint();
printf("%.2f\n", solve());
}
}```

## HDU 2993 MAX Average Problem（斜率优化）的更多相关文章

1. hdu 2993 MAX Average Problem(斜率DP入门题)

题目链接:hdu 2993 MAX Average Problem 题意: 给一个长度为 n 的序列,找出长度 >= k 的平均值最大的连续子序列. 题解: 这题是论文的原题,请参照2004集训 ...

2. HDU 2993 MAX Average Problem dp斜率优化

MAX Average Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

3. 数据结构：HDU 2993 MAX Average Problem

MAX Average Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

4. HDU 2993 MAX Average Problem（斜率优化DP）

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2993 题目大意:给定一个长度为n(最长为10^5)的正整数序列,求出连续的最短为k的子序列平均值的最大 ...

5. MAX Average Problem（斜率优化dp）

MAX Average Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

6. HDU 3045 Picnic Cows（斜率优化DP）

Picnic Cows Time Limit: 8000/4000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tota ...

7. hdu 3669 Cross the Wall(斜率优化DP)

题目连接:hdu 3669 Cross the Wall 题意: 现在有一面无限大的墙,现在有n个人,每个人都能看成一个矩形,宽是w,高是h,现在这n个人要通过这面墙,现在只能让你挖k个洞,每个洞不能 ...

8. HDU 3507 Print Article（斜率优化DP）

题目链接 题意 : 一篇文章有n个单词,如果每行打印k个单词,那这行的花费是,问你怎么安排能够得到最小花费,输出最小花费. 思路 : 一开始想的简单了以为是背包,后来才知道是斜率优化DP,然后看了网上 ...

9. HDU 3480 Division（斜率优化+二维DP）

Division Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 999999/400000 K (Java/Others) Tota ...

## 随机推荐

1. entityframework学习笔记--009-使用原生sql语句操作数据

1 使用原生SQL语句更新--Database.ExecuteSqlCommand 假设你有一张如图9-1所示的Payment数据库表. 图9-1 1.1 实体类型: public class Pay ...

2. linux 环境下安装mysql5.6

在网上找了很多博客 看着头晕眼花 各个步骤 最终功夫不负有心人 终于安装好了 特此整理分享一下 1> #yum remove mysql mysql-*    //卸载原先版本的mysql 2& ...

配置好maven后检测是否配置成功出现错误:java_home not found in your enviroment 找问题: 1.cmd--> path  看路径是否正确 2.cmd--& ...

4. [ZigBee] 10、ZigBee之睡眠定时器

0.概述 睡眠定时器用于设置系统进入和退出低功耗睡眠模式之间的周期.睡眠定时器还用于当进入低功耗睡眠模式时,维持定时器2 的定时. 睡眠定时器的主要功能如下: ● 24 位的定时器正计数器,运行在32 ...

5. Cwinux源码解析（五）

Cwinux源码解析(五)

6. .NET破解之图片下载器

自去年五月加入吾爱后,学习了三个月,对逆向破解产生了深厚的兴趣,尤其是对.NET方面的分析:但由于这一年,项目比较忙,事情比较多,破解这方面又停滞了许久,不知道还要好久. 前些天,帮忙批量下载QQ相册 ...

fis3-postpackager-loader 静态资源前端加载器,用来分析页面中使用的和依赖的资源(js或css), 并将这些资源做一定的优化后插入页面中.如把零散的文件合并. 注意 此插件做前端 ...

8. XAF应用开发教程-内置Attribute功能列表

在 XAF 框架,一些用来生成一个业务应用程序的信息是在Attribute中指定.您可以将属性应用到业务类 (或它的成员) 指定验证规则,指定如何对数据进行显示. 设置关系类等.本主题提供了有关在何处 ...

9. 配置jdk

java_home :D:\apps\common\jdk\jdk8\jdk18045\jdk1.8.0_45 classpath: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HO ...

10. 获取滚动条ScrollBar宽度

function getScrollBarWidth () { var inner = document.createElement('p'); inner.style.width = "1 ...