JZOI1169A 平均数Ave
#include <cstdio>
#include <cmath>
#define lztin() read()
#define ztyout( a ) printf( "%.4lf", a )
#define eps 1e-5
#define ll long long
using namespace std;
inline int read() {
int x = 0,tmp = 1;char ch = getchar();
while( ch < '0' || ch > '9' ) {if ( ch == '-' ) tmp = -1; ch = getchar();}
while( ch >= '0' && ch <= '9'){x = x * 10 + ch - '0'; ch = getchar(); }
return x * tmp;
}
int A[110000], N, K, cnt;
double B[1100000], T[1100000];
double ans;
void msort( int l, int r ) {
if( l == r ) return;
int mid = l + r >> 1;
msort( l, mid );
msort( mid + 1, r );
int i = l, k = l, j = mid + 1;
while( i <= mid && j <= r ) {
if( B[i] > B[j] ) {
cnt += mid - i + 1;
T[k] = B[j];
k ++, j ++;
} else {
T[k] = B[i];
k ++, i ++;
}
}
while( i <= mid ) {
T[k] = B[i];
k ++, i ++;
}
while( j <= r ) {
T[k] = B[j];
k ++, j ++;
}
for( int w = l ; w <= r ; ++ w ) B[w] = T[w];
}
int check( double mid ) {
B[0] = 0; cnt = 0;
for( int i = 1 ; i <= N ; ++ i ) {
B[i] = B[i - 1] + (double)A[i] - mid;
}
msort( 1, N );
for( int i = 1 ; i <= N ; ++ i )
cnt += ( B[i] < 0 );
return ( cnt >= K );
}
int main() {
N = lztin(), K = lztin();
for( int i = 1 ; i <= N ; ++ i ) {
A[i] = lztin();
}
double l = 0, r = (double)1e9, mid;
while( fabs( l - r ) > eps ) {
mid = ( l + r ) / 2.0;
if( check( mid ) ) ans = mid, r = mid;
else l = mid;
}
ztyout( ans );
return 0;
}
JZOI1169A 平均数Ave的更多相关文章
- 网络流24T
说出来你们可能不信,我咕了三个多星期了,今晚忽然不想再写题了,(写自闭了,把这边整理一下 1. 洛谷P2756 飞行员配对问题 二分图匹配: #include <bits/stdc++.h> ...
- bzoj1045: [HAOI2008] 糖果传递(思维题)
首先每个人一定分到的糖果都是所有糖果的平均数ave. 设第i个人给i-1个人Xi个糖果,则有Ai-Xi+X(i+1)=ave. 则A1-X1+X2=ave,A2-X2+X3=ave,A3-X3+X4= ...
- 【bzoj1465/bzoj1045】糖果传递 数论
题目描述 老师准备了一堆糖果, 恰好n个小朋友可以分到数目一样多的糖果. 老师要n个小朋友去拿糖果, 然后围着圆桌坐好, 第1个小朋友的左边是第n个小朋友, 其他第i个小朋友左边是第i-1个小朋友. ...
- Python高级笔记(九)Python使用MySQL
1. MySQL基本使用 1.1 数据库简介 Mysql: 关系型数据库,做网站 redis:当作缓存 mongodb:非关系型数据库,做爬虫 SQL语句: DQL:数据查询语言,用于对数据进行查询, ...
- 51nod 平均数(马拉松14)
平均数 alpq654321 (命题人) 基准时间限制:4 秒 空间限制:131072 KB 分值: 80 LYK有一个长度为n的序列a. 他最近在研究平均数. 他甚至想知道所有区间的平均数,但是 ...
- 【JZOJ4869】【NOIP2016提高A组集训第9场11.7】平均数
题目描述 数据范围 解法 二分答案. 对于一个答案mid,要求出区间平均数小于mid的个数ans. 给所有数减去mid,那么问题转化为求出所有区间和为负数的个数. 对于一个区间[l,r],如果sum[ ...
- Hadoop阅读笔记(二)——利用MapReduce求平均数和去重
前言:圣诞节来了,我怎么能虚度光阴呢?!依稀记得,那一年,大家互赠贺卡,短短几行字,字字融化在心里:那一年,大家在水果市场,寻找那些最能代表自己心意的苹果香蕉梨,摸着冰冷的水果外皮,内心早已滚烫.这一 ...
- 51nod平均数
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #i ...
- LYDSY模拟赛day3 平均数
[ 问题描述]有一天, 小 A 得到了一个长度为 n 的序列.他把这个序列的所有连续子序列都列了出来, 并对每一个子序列都求了其平均值, 然后他把这些平均值写在纸上, 并对它们进行排序,最后他报出了第 ...
随机推荐
- BZOJ 1005: [HNOI2008]明明的烦恼(高精度+prufer序)
传送门 解题思路 看到度数和生成树个树,可以想到\(prufer\)序,而一张规定度数的图的生成树个数为\(\frac{(n-2)!}{\prod\limits_{i=1}^n(d(i)-1)!}\) ...
- POJ 1151 线段树+扫描线(计算矩形面积并)
前一篇博客有了讲解就不再叙述了 #include<cstdio> #include<cstring> #include<cmath> #include<ios ...
- ZROI week3
作业 poj 1091 跳蚤 容斥原理. 考虑能否跳到旁边就是卡牌的\(gcd\)是否是1,可以根据裴蜀定理证明. 考虑正着做十分的麻烦,所以倒着做,也就是用\(M^N - (不合法)\)即可. 不合 ...
- 关于自动化测试学习 selenium
selenium学习路线 配置你的测试环境,真对你所学习语言,来配置你相应的selenium 测试环境.selenium 好比定义的语义---“问好”,假如你使用的是中文,为了表术问好,你的写法是“你 ...
- 71、salesforce的JSON方法
List<Merchandise__c> merchandise = [select Id,Name,Price__c,Quantity__c from Merchandise__c li ...
- PHP面试 MySQL的高可扩展和高可用
MySQL的高可扩展和高可用 面试题一 MySQL分表和分区的工作原理,分表和分区的使用场景和优缺点. 分区表的原理 对用户而言,分区表时一个独立的逻辑表,但是底层MySQL将其分成了多个物理子表,这 ...
- vue入门例子
vue入门例子 1.声明示渲染 {{message}} 2.绑定事件 v-bind 3.控制切换一个程序是否显示 v-if 4.渲染循环 ...
- 一个线上Java空指针问题的排查经过
某天,运营反馈,某商品下单异常 1.原来是一个空指针报错 根据用户输入的下单关键信息搜索日志系统看到如下报错 stackTrace: "java.lang.NullPointerExcept ...
- Django框架(二十一)—— Django rest_framework-权限组件
目录 Django rest_framework-权限组件 一.权限组件的使用 1.使用语法 2.全局使用.局部使用.局部禁用权限 二.源码分析 1.Book中没有as_view 2.APIView的 ...
- 02、python的基础-->占位符、while...else...、逻辑运算符
1.%s.%d格式化输出程序(%占位符,s字符串,d数字) name = input('请输入姓名:') age = input('请输入年龄:') job = input('请输入工作:') hob ...