1. #include <cstdio>
  2. #include <cmath>
  3. #define lztin() read()
  4. #define ztyout( a ) printf( "%.4lf", a )
  5. #define eps 1e-5
  6. #define ll long long
  7. using namespace std;
  8. inline int read() {
  9. int x = 0,tmp = 1;char ch = getchar();
  10. while( ch < '0' || ch > '9' ) {if ( ch == '-' ) tmp = -1; ch = getchar();}
  11. while( ch >= '0' && ch <= '9'){x = x * 10 + ch - '0'; ch = getchar(); }
  12. return x * tmp;
  13. }
  14. int A[110000], N, K, cnt;
  15. double B[1100000], T[1100000];
  16. double ans;
  17. void msort( int l, int r ) {
  18. if( l == r ) return;
  19. int mid = l + r >> 1;
  20. msort( l, mid );
  21. msort( mid + 1, r );
  22. int i = l, k = l, j = mid + 1;
  23. while( i <= mid && j <= r ) {
  24. if( B[i] > B[j] ) {
  25. cnt += mid - i + 1;
  26. T[k] = B[j];
  27. k ++, j ++;
  28. } else {
  29. T[k] = B[i];
  30. k ++, i ++;
  31. }
  32. }
  33. while( i <= mid ) {
  34. T[k] = B[i];
  35. k ++, i ++;
  36. }
  37. while( j <= r ) {
  38. T[k] = B[j];
  39. k ++, j ++;
  40. }
  41. for( int w = l ; w <= r ; ++ w ) B[w] = T[w];
  42. }
  43. int check( double mid ) {
  44. B[0] = 0; cnt = 0;
  45. for( int i = 1 ; i <= N ; ++ i ) {
  46. B[i] = B[i - 1] + (double)A[i] - mid;
  47. }
  48. msort( 1, N );
  49. for( int i = 1 ; i <= N ; ++ i )
  50. cnt += ( B[i] < 0 );
  51. return ( cnt >= K );
  52. }
  53. int main() {
  54. N = lztin(), K = lztin();
  55. for( int i = 1 ; i <= N ; ++ i ) {
  56. A[i] = lztin();
  57. }
  58. double l = 0, r = (double)1e9, mid;
  59. while( fabs( l - r ) > eps ) {
  60. mid = ( l + r ) / 2.0;
  61. if( check( mid ) ) ans = mid, r = mid;
  62. else l = mid;
  63. }
  64. ztyout( ans );
  65. return 0;
  66. }

JZOI1169A 平均数Ave的更多相关文章

  1. 网络流24T

    说出来你们可能不信,我咕了三个多星期了,今晚忽然不想再写题了,(写自闭了,把这边整理一下 1. 洛谷P2756 飞行员配对问题 二分图匹配: #include <bits/stdc++.h> ...

  2. bzoj1045: [HAOI2008] 糖果传递(思维题)

    首先每个人一定分到的糖果都是所有糖果的平均数ave. 设第i个人给i-1个人Xi个糖果,则有Ai-Xi+X(i+1)=ave. 则A1-X1+X2=ave,A2-X2+X3=ave,A3-X3+X4= ...

  3. 【bzoj1465/bzoj1045】糖果传递 数论

    题目描述 老师准备了一堆糖果, 恰好n个小朋友可以分到数目一样多的糖果. 老师要n个小朋友去拿糖果, 然后围着圆桌坐好, 第1个小朋友的左边是第n个小朋友, 其他第i个小朋友左边是第i-1个小朋友. ...

  4. Python高级笔记(九)Python使用MySQL

    1. MySQL基本使用 1.1 数据库简介 Mysql: 关系型数据库,做网站 redis:当作缓存 mongodb:非关系型数据库,做爬虫 SQL语句: DQL:数据查询语言,用于对数据进行查询, ...

  5. 51nod 平均数(马拉松14)

    平均数 alpq654321 (命题人)   基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是 ...

  6. 【JZOJ4869】【NOIP2016提高A组集训第9场11.7】平均数

    题目描述 数据范围 解法 二分答案. 对于一个答案mid,要求出区间平均数小于mid的个数ans. 给所有数减去mid,那么问题转化为求出所有区间和为负数的个数. 对于一个区间[l,r],如果sum[ ...

  7. Hadoop阅读笔记(二)——利用MapReduce求平均数和去重

    前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...

  8. 51nod平均数

    #include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...

  9. LYDSY模拟赛day3 平均数

    [ 问题描述]有一天, 小 A 得到了一个长度为 n 的序列.他把这个序列的所有连续子序列都列了出来, 并对每一个子序列都求了其平均值, 然后他把这些平均值写在纸上, 并对它们进行排序,最后他报出了第 ...

随机推荐

  1. Linux打开关闭ping

    #关闭 ” >/proc/sys/net/ipv4/icmp_echo_ignore_all #打开 ” >/proc/sys/net/ipv4/icmp_echo_ignore_all

  2. Windows环境下Oracle数据库的自动备份脚本自动删除30天前的备份

    @echo off echo ================================================ echo Windows环境下Oracle数据库的自动备份脚本 echo ...

  3. Dubbo入门到精通学习笔记(二十):MyCat在MySQL主从复制的基础上实现读写分离、MyCat 集群部署(HAProxy + MyCat)、MyCat 高可用负载均衡集群Keepalived

    文章目录 MyCat在MySQL主从复制的基础上实现读写分离 一.环境 二.依赖课程 三.MyCat 介绍 ( MyCat 官网:http://mycat.org.cn/ ) 四.MyCat 的安装 ...

  4. 5. 使用grafana模板

    我们刚刚配置的Dashboard还是有点简陋,为了界面美观,这里我们这里使用一些模板 1.使用node_exporter模板 去grafana官网下载模板,点击Download,如下所示 2.导入模板 ...

  5. git的使用(本地版本库)

    1. 创建版本库 1.1 创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: 1.2通过git init命令把这个目录变成Git可以管理的仓库(git进入空目录的路径) $ git i ...

  6. keepalive+Haproxy

    1.keepalive Keepalived 是一款轻量级HA集群应用,它的设计初衷是为了做LVS集群的HA,即探测LVS健康情况,从而进行主备切换,不仅如此,还能够探测LVS代理的后端主机的健康状况 ...

  7. (1.2)学习笔记之mysql体系结构(数据库文件)

    InnoDB存储引擎体系结构图 1.InnoDB数据库的结构 (1)redo log:这里的redo log不是数据的redo log,InnoDB本也是一个数据库,身具有的redo log,所以这里 ...

  8. JDK动态代理源码剖析

    关键代码: 1.Proxy.newInstance: private static final Class<?>[] constructorParams = { InvocationHan ...

  9. 一道面试题:js返回函数, 函数名后带多个括号的用法及join()的注意事项

    博客搬迁,给你带来的不便,敬请谅解! http://www.suanliutudousi.com/2017/11/13/js%E8%BF%94%E5%9B%9E%E5%87%BD%E6%95%B0%E ...

  10. 免费开源的获取代理ip项目

    地址:https://github.com/awolfly9/IPProxyTool 根据教程获取ip,项目使用Python语言写的,正好可以让前些日子学了点Python皮毛的我长长见识: ip都是会 ...