Description

Data Constraint

Solution

这道题我们用二分答案就好。每次二分一个平均值,从1到n扫一下,选取一个总和比平均值个数大最多的数,若没有,则选择一个总和比平均值 个数相差最小的数即可。时间复杂度O(N*Hlog109log10^9)。

代码

#include<iostream>
#include<cmath>
#include<cstring>
#include<cstdio>
#include<algorithm>
#define ll long long
using namespace std;
const int maxn=100005;
ll a[maxn],n,m,i,t,j,k,num,p;
double mid,l,r,b[maxn],c[maxn],sum,mx,x;
bool bz;
int main(){
//  freopen("data.in","r",stdin);scanf("%d%d",&n,&m);for (i=1;i<=n;i++){k=t+2;for (j=1;j<=m;j++)scanf("%lld",&a[++t]);c[k-1]=b[k-1]=a[k-1];for (j=k;j<=t;j++)c[j]=b[j]=b[j-1]+a[j];for (j=k-1;j<=t;j++)c[j]/=j-k+2;}l=0;r=10000000000;while (r-l>0.000001){mid=(l+r+0.000001)/2;sum=0;num=0;for (i=1;i<=n;i++){mx=1000000000*n*m;for (j=i*m;j>=(i-1)*m+1;j--)if ((mid-c[j])*(j-(i-1)*m)<mx) mx=(mid-c[j])*(j-(i-1)*m),p=j;sum+=b[p],num+=p-(i-1)*m;}x=sum/(num*1.0);if (x>=mid) l=mid;else r=mid-0.000001;}printf("%.4lf\n",l);
}

NOIP提高组【JZOJ4809】挖金矿相关推荐

  1. 2018.12.08【NOIP提高组】模拟B组总结(未完成)

    2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...

  2. 第一届『Citric杯』NOIP提高组模拟赛 题解

    [官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...

  3. 津津的储蓄计划 NOIp提高组2004

    这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...

  4. 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)

    信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...

  5. {小结}2016.6.11【初中部 NOIP提高组 】模拟赛C

    2016.6.11[初中部 NOIP提高组 ]模拟赛C No.1!!! 100+33.3+10+90=233.3 23333 1298. 牛棚(graze2.pas/c/cpp) 题解 1299. 洗 ...

  6. 6271. 2019.8.4【NOIP提高组A】锻造 (forging)

    6271. 2019.8.4[NOIP提高组A]锻造 (forging)  (File IO): input:forging.in output:forging.out Time Limits: 15 ...

  7. 2020.08.08【NOIP提高组】模拟:奶牛的图片 总结

    2020.08.08[NOIP提高组]模拟:奶牛的图片 总结 Description Farmer John希望给他的 N ( 1 ≤ N ≤ 100 , 000 ) N(1\leq N\leq100 ...

  8. NOIP 提高组 复赛 历年 试题

    NOIP 提高组  复赛  历年 试题 NOIP 2017 提高组 复赛  试题 https://wenku.baidu.com/view/70de9e29854769eae009581b6bd97f ...

  9. noip提高组初赛有感——

    本人第一次考试,感觉还好吧,误打误撞报了个提高组,觉得还是有点亏了(把普及组的脸甩在地上狠狠摩擦那种)..蒟蒻的我答后面的题时就开始困难了,但多选题答得还可以.考场有提前交卷的,大神总是很多呀- 不过 ...

  10. NOIP提高组1890~1900集合答案(之前的文章标题错了,应该是1820开始的,不是1520开始的)

    1890:[15NOIP提高组]跳石头时间限制: 1000 ms 内存限制: 131072 KB 提交数: 1037 通过数: 561 [题目描述] 这项比赛将在一条笔直的河道中进行,河道中分布着一些 ...

最新文章

  1. Linux 常用命令操作
  2. Cocos Creator中按钮组件数组的使用
  3. spring装载配置文件失败报错:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException...
  4. 组合恒等式3 母函数与形式幂级数的运算
  5. swagger配置分组
  6. SpringMVC深度探险 —— SpringMVC核心配置文件详解
  7. GIT常用快捷键配置
  8. Oracle -----视图
  9. django migrate无效的解决方法
  10. html超浪漫的3D动态相册表白网站制作 html程序员专属情人节表白网站
  11. office 2010 激活 toolkit.exe 应用程序正常初始化失败
  12. 原生JS制作网页中的倒计时效果
  13. ecshop 添加php标签,ECSHOP模板制作修改自定义标签,ECSHOP标签大全,ECSHOP模板标
  14. AD16 绘制简单电路原理图的基本步骤(适合小白)
  15. 优化之Joiner组件
  16. nginx设置代理后端服务器增加前缀
  17. 《惊奇队长》全球IMAX影院劲收3610万美元
  18. FRC (Frame Rate Conversion)技术
  19. 魔坊APP项目-24-种植园,修复宠物喂食时出现的饱食度没有增加的bug、宠物挂了的bug问题
  20. 三轴可编程运动控制程序,支持信捷XDM系列PLC 信捷TG765触摸屏

热门文章

  1. 带左右箭头的图片轮播
  2. java 中文分词转拼音_如何实现拼音与汉字的互相转换
  3. Unicode与GB18030、GBK、GB2312
  4. Scala二十四点游戏
  5. JVM -运行时数据区 - 堆空间
  6. android怎么安装CA证书及代理抓包
  7. windows下制作iso文件,WinMount介绍
  8. 情境认知测量方法的研究
  9. Python运算符优先级和结合性
  10. Linux学习16-磁盘分区MSDOS与GPT的区别