http://codeforces.com/problemset/problem/939/E

https://vjudge.net/problem/CodeForces-939E

给一个集合,每次两个操作:

1 a:将一个大于集合所有数的a添加进集合。

2:查询集合中所有子集的最大值-平均值的最大值。

有一个结论:最大值所在的子集一定包含集合最大值,我们用感性证明证明一下。

我们假设结论为假,那么我们已经选定了一个子集,设其最大值为x,我们在集合里还有一个数为x+1,则如果将x换成x+1,平均值只会加上一个小于1的数,而最大值却加1,显然要比原先的值大,所以x+1更优。

同理x与x+2比较可以看成x+1与x+2比较,以此类推。

所以结论必为真。

那么既然我们能固定一个最大值,我们还有一个显然成立的结论,就是子集一定为最小的前k个数和最大的数x构成。因为太显然了就不证了。

既然这样,那么显然答案是一个单峰函数,可以三分求解。

(第一次碰这个题的时候前几个步骤都想到了三分愣是没想到……我是真的蠢,看样子题刷少了)

#include<cstdio>
#include<algorithm>
using namespace std;
typedef double dl;
typedef long long ll;
const int Q=5e5+;
ll sum[Q],maxx;
int len=;
inline dl suan(int k){
return 1.0*(maxx*k-sum[k])/(k+);
}
dl sanfen(int l,int r){
int mid1,mid2;
while(l<=r){
if(r-l<){
dl ans=suan(r);
for(int i=l;i<r;i++)ans=max(ans,suan(i));
return ans;
}
mid1=l+(r-l)/,mid2=mid1+(r-l)/;
if(suan(mid1)>suan(mid2))r=mid2;
else l=mid1;
}
}
int main(){
int q,op;
scanf("%d",&q);
while(q--){
scanf("%d",&op);
if(op==){
scanf("%lld",&maxx);
sum[++len]=sum[len-]+maxx;
}
else printf("%.10lf\n",sanfen(,len-));
}
return ;
}

+++++++++++++++++++++++++++++++++++++++++++

+本文作者:luyouqi233。               +

+欢迎访问我的博客:http://www.cnblogs.com/luyouqi233/+

+++++++++++++++++++++++++++++++++++++++++++

CF939E:Maximize! ——题解的更多相关文章

  1. CF1139E Maximize Mex 题解【二分图】

    我发现我有道叫[SCOI2010]连续攻击游戏的题白写了.. Description There are \(n\) students and \(m\) clubs in a college. Th ...

  2. 2017 google Round C APAC Test 题解

    题解参考网上的答案,以及我自己的想法. 主要参考网站:http://codeforces.com/blog/entry/47181,http://codeforces.com/blog/entry/4 ...

  3. 洛谷P2891 Dining P1402 酒店之王【类二分图匹配】题解+代码

    洛谷P2891 Dining P1402 酒店之王[类二分图匹配]题解+代码 酒店之王 题目描述 XX酒店的老板想成为酒店之王,本着这种希望,第一步要将酒店变得人性化.由于很多来住店的旅客有自己喜好的 ...

  4. 2016 Multi-University Training Contest 2题解报告

    A - Acperience HDU - 5734 题意: 给你一个加权向量,需要我们找到一个二进制向量和一个比例因子α,使得|W-αB|的平方最小,而B的取值为+1,-1,我们首先可以想到α为输入数 ...

  5. Codeforces Round #469 Div. 2题解

    A. Left-handers, Right-handers and Ambidexters time limit per test 1 second memory limit per test 25 ...

  6. Codeforces Round #468 Div. 2题解

    A. Friends Meeting time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  7. CodeForces 939E Maximize

    Maximize 题意:整个程序有2种操作,操作1将一个元素放入集合S中,且保证最新插入的元素不小于上一次的元素, 操作2 找到集合S中的某个子集合, 使得 集合中最大的元素减去平均数的值最大. 题解 ...

  8. CF 1132A,1132B,1132C,1132D,1132E,1132F(Round 61 A,B,C,D,E,F)题解

    A.Regular bracket sequence A string is called bracket sequence if it does not contain any characters ...

  9. Codeforces Round #436 (Div. 2) 题解864A 864B 864C 864D 864E 864F

    A. Fair Game time limit per test 1 second memory limit per test 256 megabytes input standard input o ...

随机推荐

  1. Java图片转字符

    很久都没有更新博客了,昨天下午一个朋友问我能不能将一张图片转换成字符画,然后我想我这个朋友不知道,也许有的朋友以不知道,我就简单的分享一下 package com.xsl.zhuanhuan; imp ...

  2. 感觉总结了一切python常见知识点,可直接运行版本

    #encoding=utf-8#http://python.jobbole.com/85231/#作用域a=1def A(a): a=2 print 'A:',a def B(): print 'B: ...

  3. 跟浩哥学自动化测试Selenium -- 浏览器的基本操作与元素定位(3)

    浏览器的基本操作与元素定位 通过上一章学习,我们已经学会了如何设置驱动路径,如何创建浏览器对象,如何打开一个网站,接下来我们要进行一些复杂的操作比如先打开百度首页,在打开博客园,网页后退,前进等等,甚 ...

  4. Ubuntu卡在logo界面

    对于这个问题,我也是在最近一次偶然的机会中发现的. 我重装了了Ubuntu 18.04, 很多东西需要重新配置,  有个刚性需求就是配置shadowsocks实现***,对于从windows向linu ...

  5. lesson 18 Electric currents in modern art

    lesson18 Electric currents in modern art electricity n. 电力:电流; electric adj. 电的:电动的; electronic adj. ...

  6. tpo-08 C1 submit a document for graduation

    第 1 段 1.Listen to a conversation between a student and a registrar. 请听一段学生和老师的对话. 第 2 段 1.Hi, I'd li ...

  7. List和String数组相互转化

    在工作中经常会遇到需要String[] 参数的地方,我们可以先定义一个list,再转成String[] 来使用,使用list的好处自然是可以随时方便的添加删除元素,下面是方法: List list = ...

  8. linux学习总结----redis总结

    安装 下载:打开redis官方网站,推荐下载稳定版本(stable) 解压 tar zxvf redis-3.2.5.tar.gz 复制:推荐放到usr/local目录下 sudo mv -r ...

  9. BZOJ 3790 神奇项链 hash/后缀自动机+贪心

    Description 母亲节就要到了,小 H 准备送给她一个特殊的项链.这个项链可以看作一个用小写字母组成的字符串,每个小写字母表示一种颜色. 为了制作这个项链,小 H 购买了两个机器.第一个机器可 ...

  10. HDU 3262/POJ 3829 Seat taking up is tough(模拟+搜索)(2009 Asia Ningbo Regional)

    Description Students often have problems taking up seats. When two students want the same seat, a qu ...