NOIP提高组【JZOJ4809】挖金矿
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】挖金矿相关推荐
- 2018.12.08【NOIP提高组】模拟B组总结(未完成)
2018.12.08[NOIP提高组]模拟B组总结 diyiti 保留道路 进化序列 B diyiti Description 给定n 根直的木棍,要从中选出6 根木棍,满足:能用这6 根木棍拼出一个 ...
- 第一届『Citric杯』NOIP提高组模拟赛 题解
[官方题解]第一届『Citric杯』NOIP提高组模拟赛 题解 第一题 柠檬超市 这题是本次模拟赛的送分题.做法显然. 但是注意此题有一个陷阱: 注意W和C的规模都是10^9,所以如果直接用doubl ...
- 津津的储蓄计划 NOIp提高组2004
这个题目当年困扰了我许久,现在来反思一下 本文为博客园ShyButHandsome的原创作品,转载请注明出处 右边有目录,方便快速浏览 题目描述 津津的零花钱一直都是自己管理.每个月的月初妈妈给津津\ ...
- 信息学奥赛一本通(C++版)NOIP提高组(1820-1829)
信息学奥赛一本通(C++版)NOIP提高组目录 //1820 [题目描述] 我们可以用这样的方式来表示一个十进制数:将每个阿拉伯数字乘以一个以该数字所 处位置的(值减1)为指数,以10为底数的幂之和的 ...
- {小结}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. 洗 ...
- 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 ...
- 2020.08.08【NOIP提高组】模拟:奶牛的图片 总结
2020.08.08[NOIP提高组]模拟:奶牛的图片 总结 Description Farmer John希望给他的 N ( 1 ≤ N ≤ 100 , 000 ) N(1\leq N\leq100 ...
- NOIP 提高组 复赛 历年 试题
NOIP 提高组 复赛 历年 试题 NOIP 2017 提高组 复赛 试题 https://wenku.baidu.com/view/70de9e29854769eae009581b6bd97f ...
- noip提高组初赛有感——
本人第一次考试,感觉还好吧,误打误撞报了个提高组,觉得还是有点亏了(把普及组的脸甩在地上狠狠摩擦那种)..蒟蒻的我答后面的题时就开始困难了,但多选题答得还可以.考场有提前交卷的,大神总是很多呀- 不过 ...
- NOIP提高组1890~1900集合答案(之前的文章标题错了,应该是1820开始的,不是1520开始的)
1890:[15NOIP提高组]跳石头时间限制: 1000 ms 内存限制: 131072 KB 提交数: 1037 通过数: 561 [题目描述] 这项比赛将在一条笔直的河道中进行,河道中分布着一些 ...
最新文章
- Linux 常用命令操作
- Cocos Creator中按钮组件数组的使用
- spring装载配置文件失败报错:org.springframework.beans.factory.xml.XmlBeanDefinitionStoreException...
- 组合恒等式3 母函数与形式幂级数的运算
- swagger配置分组
- SpringMVC深度探险 —— SpringMVC核心配置文件详解
- GIT常用快捷键配置
- Oracle -----视图
- django migrate无效的解决方法
- html超浪漫的3D动态相册表白网站制作 html程序员专属情人节表白网站
- office 2010 激活 toolkit.exe 应用程序正常初始化失败
- 原生JS制作网页中的倒计时效果
- ecshop 添加php标签,ECSHOP模板制作修改自定义标签,ECSHOP标签大全,ECSHOP模板标
- AD16 绘制简单电路原理图的基本步骤(适合小白)
- 优化之Joiner组件
- nginx设置代理后端服务器增加前缀
- 《惊奇队长》全球IMAX影院劲收3610万美元
- FRC (Frame Rate Conversion)技术
- 魔坊APP项目-24-种植园,修复宠物喂食时出现的饱食度没有增加的bug、宠物挂了的bug问题
- 三轴可编程运动控制程序,支持信捷XDM系列PLC 信捷TG765触摸屏