Description

给出包含一个N个整数的数组A。找出一段长度至少为K的连续序列,最大化它的平均值。
请注意:一段子序列的平均值是子序列中所有数的和除以它的长度。

Input

第一行包含两个整数N(1<=N<=300000),K(1<=K<=N)。
 第二行包含N个整数,代表数组A,1<=ai<=10^6。

Output

一行一个实数,代表最大的平均值。允许在0.001以内的绝对误差。

Sample Input

输入1:4 11 2 3 4输入2:4 22 4 3 4输入3:6 37 1 2 1 3 6

Sample Output

输出1:4.000000输出2:3.666666输出3:3.333333

Data Constraint

对于30%的数据,N<=5000。
对于100%的数据,1<=N<=300000, 1<=K<=N, 1<=Ai<=1000000。

题解

  • 先二分出来一个平均值,然后将序列里的所有数减去二分出来的数
  • 然后求一遍前缀和直接判断就好了

代码

 1 #include <cstdio>
 2 #include <cstring>
 3 #define N 300010
 4 using namespace std;
 5 int n,k;
 6 double l,r,mid,a[N],b[N],eps=1e-5;
 7 bool check(int x)
 8 {
 9     double p=0;
10     for (int i=k;i<=n;i++)
11     {
12         if (b[i]-p>=0) return 1;
13         if (b[i-k+1]<p) p=b[i-k+1];
14     }
15     return 0;
16 }
17 int main()
18 {
19     freopen("average.in","r",stdin),freopen("average.out","w",stdout),scanf("%d%d",&n,&k);
20     for (int i=1;i<=n;i++) scanf("%lf",&a[i]),r+=a[i];
21     while (r-l>eps)
22     {
23         double mid=(l+r)/2.0; b[0]=0;
24         for (int i=1;i<=n;i++) a[i]-=mid,b[i]=b[i-1]+a[i];
25         if (check(mid)) l=mid; else r=mid;
26         for (int i=1;i<=n;i++) a[i]+=mid;
27     }
28     printf("%.5lf",l);
29 }

转载于:https://www.cnblogs.com/Comfortable/p/10358964.html

[贪心][前缀和] Jzoj P4256 平均数相关推荐

  1. 均分纸牌问题——(分治 + 贪心 + 前缀和 + 中位数 + 排序)

    题目描述 七夕节因牛郎织女的传说而被扣上了「情人节」的帽子. 于是TYVJ今年举办了一次线下七夕祭. Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七 ...

  2. D. The Best Vacation(贪心+前缀和+二分)

    The Best Vacation 思路 前缀和加贪心 贪心:我们的结尾点一定是在某一个月的最后一天. 贪心部分证明:我们选定两组数 A=an−2,an−1,an,b1,b2,b3--bn−2,bn− ...

  3. Boboniu Chats with Du(贪心 + 前缀和)

    题目链接: Boboniu Chats with Du 大致题意: 给你n个数字, 让你给这n个数字进行合理排序, 使得结果这n个数字之和最大. 条件: 如果某个位置i出现了大于m的数字, 则接下来的 ...

  4. 51nod 1344 走格子【贪心/前缀和】

    1344 走格子 基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题  收藏  关注 有编号1-n的n个格子,机器人从1号格子顺序向后走,一直走到n号格子,并需要从n号格 ...

  5. P6364 1024 程序员节发橙子(贪心+前缀和)

    提交链接:传送门 思路:对于每一个人,都要考虑左右有多少个人成绩比它小的,在这两者之间要取一个最大值,因为这样才能保证每个人都分到了橙子.利用前缀和的思想,把每一个数左右两边小于它的处理出来,然后遍历 ...

  6. 灵能传输(贪心,前缀和)

    灵能传输 题目链接 在游戏<星际争霸 II>中,高阶圣堂武士作为星灵的重要 AOE 单位,在游戏的中后期发挥着重要的作用,其技能"灵能风暴"可以消耗大量的灵能对一片区域 ...

  7. [dp][前缀和] Jzoj P5907 轻功(qinggong)

    Description 题目背景: 尊者神高达进入了基三的世界,作为一个 mmorpg 做任务是必不可少的,然而跑地图却令人十分不爽.好在基三可以使用轻功,但是尊者神高达有些手残,他决定用梅花桩练习轻 ...

  8. [树上最长链][tarjan][单调队列][环上前缀和] Jzoj P5905 黑暗之魂(darksoul)

    Description oi_juruo热爱一款名叫黑暗之魂的游戏.在这个游戏中玩家要操纵一名有 点生命值的无火的余灰在一张地图中探险.地图中有n个篝火(也就是存档点).在篝火处休息可以将生命值恢复满 ...

  9. 2021算法竞赛入门班第一节课【枚举、贪心】习题

    目录 [USACO 2007 Jan S]保护花朵[经典贪心] [NOIP2005]校门外的树[区间合并] [NOIP2006]明明的随机数[签到] [HNOI2003]激光炸弹[二维前缀和] 铺地毯 ...

最新文章

  1. Python实现:详解LRU缓存淘汰算法
  2. 求第k小元素:采用特定分治策略
  3. DES/AES、SM4、RSA、SM2、SM3
  4. 玩转数据结构从入门到进阶四
  5. 3、(小数类型)FLOAT、DOUBLE、DECIMAL
  6. Intel RealsenseD435 color图与depth图的两种对齐(align)方式
  7. ubuntu下 显示no module named “lib“或 “lib.xxx“
  8. 树莓派3_win10下使用远程桌面连接与树莓派通信(使用VNC实现连接后)
  9. 如何使用git上传本地文件到码云上【详细步骤】
  10. 在spring中该如何使用DTO,以及DTO和Entity的关系
  11. Linux 内核调试器 调试指南
  12. c语言is int number,C语言中NSInteger,NSNumber以及Int的区别
  13. 金错刀:“打工皇帝”唐骏的职场潜规则
  14. WAP1.x协议栈浅析
  15. 国企程序员可以干多久
  16. Android中EditText优先弹出数字输入法
  17. 树莓派教程 - 1.5 树莓派GPIO库wiringPi 使用硬件串口ttyAMA0与ttyS0
  18. Ubuntu打造家用NAS三——网盘与影视中心
  19. 开源数据集网站推荐,持续更新!
  20. 苹果电脑mp3转gif_Mac视频怎样转换成Gif图片?

热门文章

  1. cmd命令重定向到剪切板
  2. 插件化框架DL源码的简单解析
  3. NetworkX系列教程(1)-创建graph
  4. 快速建立自己的个人网站!五款建站程序
  5. JavaSE学习总结第08天_面向对象3
  6. Hadoop—常见面试题
  7. 分布式事务解决方案之 Alibaba Seata1.3.0 seata-server 1.3.0
  8. kotlin学习笔记——lambda表达式
  9. 句子相似度比较的归一化
  10. 安装nvm管理多版本nodejs