JZOJ 4809. 挖金矿
Problem
Description
Input
Output
Sample Input
4 3
4 3 3
5 1 6
2 6 1
3 2 9
Sample Output
4.4286
Data Constraint
Hint
Solution
这题显然二分。
令sum[i][...]sum[i][...]表示第i行的前缀和,第i行挖h[i]h[i]层,二分答案为midmid,合法情况当且仅当
\frac{\Sigma_{i=1}^n sum[i][h[i]]}{\Sigma_{i=1}^n h[i]}-x非负
那么我们很容易得到一条式子:
\Sigma_{i=1}^n (sum[i][h[i]]-h[i]·x)≥0
那么我们只要算一下
\Sigma_{i=1}^n max(sum[i][j]-jx)是否≥0 (1≤j≤h)就OK了。
由于n,h不确定,所以二维的sum数组要改成一维。
Code
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#define N 100010
#define eps 0.00001
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
int i,j,n,h,tot;
double l,r,mid,x,ans,sum,mx,a1,a2,a[N],s[N];
int main()
{freopen("4809_1.in","r",stdin);scanf("%d%d",&n,&h);fo(i,1,n*h){scanf("%lf",&a[i]);sum+=a[i];s[i]=sum;if (i%h==0) sum=0;}l=0;r=1000000000;while (l+eps<r){mid=(l+r)/2;sum=0;fo(i,1,n){mx=-2147483647;fo(j,1,h)mx=max(mx,s[(i-1)*h+j]-j*mid);sum+=mx;}if (sum>=0) l=mid;else r=mid;}printf("%.4lf",l);
}
JZOJ 4809. 挖金矿相关推荐
- java回调函数的生命_Java车票,车站,生命周期,龟兔赛跑,同步锁,礼让,守护线程,挖金矿【诗书画唱】...
个人理解:加同步锁等的时候,就可以让线程"按顺序排队",一个一个地抢CPU,一个抢完对应的每次有的CPU了,另一个才抢对应的每次有的CPU,解决"并发"问题等. ...
- 百度上线百度金矿,个人电脑也可以挖金矿
百度金矿号称一个可以让个人电脑利用闲置网络资源赚钱的软件,这种软件近几年好几家公司都有做过尝试,迅雷,小米等互联网公司都有搞过. 这种模式有点像比特币不过之前有试过迅雷的确实不太理想,百度金矿也只是 ...
- 人工智能变现难?这家AI挖金矿公司已上市
"变现"是当下阶段人工智能公司面临最重要的难题,表面看来人工智能已经在安防.医疗.教育.智能手机.汽车.金融等诸多行业纷纷落地,但这些行业实际上能产生的营收并不十分乐观.而且诸多均 ...
- 【动态规划模型】金矿模型理解动态规划!(精彩的故事)
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
- 【转载】通过金矿模型介绍动态规划 (动态规划入门)
先附上原文地址:http://www.cnblogs.com/sdjl/articles/1274312.html 通过金矿模型介绍动态规划 对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第 ...
- 动态规划入门之国王的金矿
最近学习算法,对动态规划不太了解,使用的时候照搬转移方程式,知其然不知其所以然,今天看到一篇动态规划的教程,解释得非常通俗,原文在这里[动态规划入门教程] (http://blog.csdn.net/ ...
- 【面试经典】求解金矿问题(动态规划初级)
问题:有一个国家发现了5座金矿,每座金矿的黄金储量不同,需要参与挖掘的工人数也不同(情况如下图) 金矿编号 黄金储量 需要人数 1 400 5 2 500 5 3 200 3 4 300 4 5 35 ...
- 通过金矿模型介绍动态规划
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
- 通过金矿模型介绍动态规划(经典入门)
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
- 动态规划--金矿模型
对于动态规划,每个刚接触的人都需要一段时间来理解,特别是第一次接触的时候总是想不通为什么这种方法可行,这篇文章就是为了帮助大家理解动态规划,并通过讲解基本的01背包问题来引导读者如何去思考动态规划.本 ...
最新文章
- C++内存管理与内存泄漏及其检测
- 想成为一名优秀的Web前端工程师,这5点你要知道
- asp.net 2.0下用access开发的时候要注意的问题
- 新生代中Eden:S1:S2为什么是8:1:1?
- Swing应用程序中的CDI事件可将UI与事件处理分离
- jQuery中的ajax、jquery中ajax全局事件、load实现页面无刷新局部加载、ajax跨域请求jsonp、利用formData对象向服务端异步发送二进制数据,表单序列化(异步获取表单内容)
- 京东商品知识图谱,约10万商品品牌,约65万品牌销售关系
- windows10重装后锁定其他盘_电脑重装Windows10系统步骤
- 用Python+PIL将多个jpg图像批量合并成一个pdf文件
- 运动控制器用c语言编程吗,中文可编程运动控制器
- SSM毕设项目国有资产管理系统3c938(java+VUE+Mybatis+Maven+Mysql)
- 2019年java全栈工程师学习大全
- 微信小程序开发入门指南一
- Ribbon与Hystrix
- 计算机老师中专教学论文,中专计算机多元化教学论文
- ps中常用模糊的区别
- Oracle中有dateadd吗,oracle dateadd的函数有哪些?
- HTTP协议中 POST和GET的区别
- NYOJ 买牛奶(水题)
- 新西兰 计算机 转专业,新西兰本科毕业之后怎么转专业