题目链接:点击打开链接

题目大意:有一个酒桶容量为Vc。里面还有Vw的酒,如今用Vb的水去刷酒桶,每次酒桶的内壁上会留下Vr的液体,最多能够刷k次,问怎么样刷酒桶。能够让酒桶里面的就最少。

假设Vb+Vw < Vc,那么直接输出0

那么其他情况就保证了一定能够向外倒水。所以终于的桶里面剩余的液体是Vr。仅仅要保证Vr内的酒的浓度最小。那么剩余的酒也就是最少的。

能够假设用的水是x1,x2,x3,,,,计算每次刷通后的浓度。

第一次刷:Vw / (Vw+x1)

第二次刷:Vw / (Vw+x1) * Vr / (Vr+x2)

第三次刷:Vw / (Vw+x1) * Vr / (Vr+x2) * Vr / (Vr+x3)

这样也就能看出来,假设洗刷k次,那么终于的浓度是Vw / (Vw+x1) * Vr / (Vr+x2) * Vr / (Vr+x3),,,,* Vr / (Vr+xk)

那么怎样保证它的值最小呢?假设我们能确定一个x1,那么x2+x3,,,+xk = Vb-x1,这种条件怎么保证Vr / (Vr+x2) * Vr / (Vr+x3),,,,* Vr / (Vr+xk)尽量小。我们能够发现,假设x2 = x3 = x4 ,, = xk计算出的结果会比不同的更小,假设x的值都是(Vb-x1)/(k-1),那么k越大,得到的值就越小。(Vb-x1)/(k-1)越大,那么得到的值越小。

所以选择最多的刷洗次数,从第2次到第k次,每次用水同样,那么剩下的就是x1怎么确定。

假设x1添加。那么Vw / (Vw+x1)会减小。(Vb-x1)/(k-1)会减小,(Vr/(Vr+x))^(k-1)就会增大,总的浓度不能确定,所以用三分查找,找到一个最小的结果。

注意

1、三分的时候桶内的就有Vw。注意三分的上下界。

2、在计算浓度的时候,向桶内加的水由Vb-x算出,可是这个值不能超多Vc-Vr

#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std ;
#define eqs 1e-9
int k ;
double vb , vw , vr , vc ;
double solve(double x) {double ans = vw/(vw+x) ;if( k > 1 ) {double y = min( (vb-x)/(k-1), vc-vr) ;for(int i = 1 ; i < k ; i++)ans *= vr/(vr+y) ;}return ans ;
}
int main() {while( scanf("%d", &k) != EOF ) {if(k == 0) break ;scanf("%lf %lf %lf %lf", &vb, &vw, &vr, &vc) ;if( vr-vw-vb > eqs ) {printf("0\n") ;continue ;}double low = max(0.0,vr-vw) , mid1 , mid2 , high = min(vb,vc-vw) ;while( low + eqs < high ) {mid1 = (low + high)/2.0 ;mid2 = (mid1 + high)/2.0 ;if( solve(mid1) > solve(mid2) ) {low = mid1 ;}elsehigh = mid2 ;}printf("%d", k) ;printf(" %.2f", high) ;if( k > 1 ) high = min(vc-vr,(vb-low)/(k-1)) ;for(int i = 1 ; i < k ; i++) {printf(" %.2f", high) ;}printf("\n") ;}return 0 ;
}

poj3296--Rinse(三分)相关推荐

  1. 0x04.基本算法 — 二分和三分

    目录 一.二分 0.二分法 1.整数域上的二分 2.实数域上的二分 二.三分 0.三分求单峰函数极值 1.P3382 [模板]三分法(秦九韶求多项式+三分) 三.二分答案转化为判定 0.经典例子 1. ...

  2. python刷题一亩三分地_手把手教你用python抓网页数据【一亩三分地论坛数据科学版】...

    前言:. visit 1point3acres.com for more. 数据科学越来越火了,网页是数据很大的一个来源.最近很多人问怎么抓网页数据,据我所知,常见的编程语言(C++,java,pyt ...

  3. HDU-4454 Stealing a Cake 三分枚举

    题意:给定一个点,一个圆,以及一个矩形,现在问从一个点到一个圆再到一个矩形的最短距离为多少?到达一个目标可以只挨着或者穿过它. 解法:目前只知道从一个点到圆上按照[0,PI],[PI,2*PI]的两个 ...

  4. hihoCoder #1142 : 三分求极值

    #1142 : 三分·三分求极值 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 这一次我们就简单一点了,题目在此: 在直角坐标系中有一条抛物线y=ax^2+bx+c和一 ...

  5. CF 8D Two Friends (三分+二分)

    转载请注明出处,谢谢http://blog.csdn.net/ACM_cxlove?viewmode=contents    by---cxlove 题意 :有三个点,p0,p1,p2.有两个人ali ...

  6. 七分结构三分代码-直立车想节能

    沉睡的小灰 2021-01-27 Wednesday ⊙ 原文链接: 直立车想节能--2020全国大学生智能车车竞赛经验记录之梦的开始 ▌黄粱一梦   如今回首,我不懂我一个通信工程的为什么要去做这个 ...

  7. 移动终端三分天下 何与争峰

    随着移动端的崛起,具有多种应用功能的智能手机以及平板电脑也都应运而生占据了目前大部分市场!而一直处于竞争阶段的IOS和Android系统在激烈的厮杀下,本以为Windows系统的移动端已经可以退隐江湖 ...

  8. BZOJ1857 Scoi2010 传送带 【三分】

    BZOJ1857 Scoi2010 传送带 Description 在一个2维平面上有两条传送带,每一条传送带可以看成是一条线段.两条传送带分别为线段AB和线段CD.lxhgww在AB上的移动速度为P ...

  9. 英特尔的指令集体系结构_对标英特尔的RISC-V大有可为,CPU三分天下格局可期

    据行业媒体报道,挪威物联网(IoT)公司ONiO日前推出了一种基于RISC-V的超低功耗微控制器,能够完全利用采集的能量进行操作,而无需电池.无需超级电容器或任何其他形式的储能. 此款微控制器本身基于 ...

  10. 英国工会联盟报告:机器人技术和AI让三分之一的人失业

    本文来自AI新媒体量子位(QbitAI) 近日,英国工会联盟(后称TUC)撰写了一份数字化时代工作状况报告,主要阐述了目前人工智能和机器人技术对生产力的影响等问题.下文是外媒ZDNet对这篇报告的简要 ...

最新文章

  1. serialport接收串口数据_C#串口操作类,包括串口读写操作
  2. python安装包-Python软件包的安装(3种方法)
  3. React开发(150):判断方法有避免报错
  4. 20179214 《网络攻防实践》第五周学习
  5. ftp 530 linux,Linux启动ftp服务器530 Permission denied解决方法
  6. 面试官问我:平常如何对你的 Java 程序进行调优?
  7. flink 不设置水印_从0到1学习Flink—— Flink parallelism 和 Slot 介绍
  8. 2018-06-12 python读二进制文件
  9. bzoj 4653: [Noi2016]区间(尺取+线段树)
  10. Android 组件系列-----Activity保存状态
  11. Beginning Python chapter 3: Working with strings
  12. 【小程序】低代码+小游戏=小游戏可视化开发
  13. 现代软件工程学期总结
  14. 样式和多级编号的关系
  15. Python微信防撤回,基于itchat模块
  16. seaborn颜色报错 ValueError: Invalid RGBA argument: [‘#f9802d‘, ‘#f26b15‘, ‘#fdc48f‘]
  17. 嵌入式准备 -- git、VSvode
  18. app通过电商变现方式探讨
  19. 北京摇号系统服务器,支付宝“城市服务”平台可查询北京小客车摇号结果
  20. jdbc批量插入的4种方式【百万条数据插入只需几秒】

热门文章

  1. 【图文详细教程】maven3安装配置+eclipse离线安装maven3插件《《唯一成功的教程~~~2018-01-09》》...
  2. Docker与Kubernetes,是敌是友?
  3. 線陣相機處理時間計算方法
  4. 解决AJAX表单用POST方式提交Checkbox复选框的问题
  5. oracle 建表时间戳类型,Oracle插入timestamp类型数据详解
  6. android小闹钟课程设计,《小闹钟》教学设计
  7. 计算机四级信息安全题,2014年计算机四级考试信息安全工程精选真题
  8. MySQL排序查询示例
  9. RabbitMQ Fanout
  10. 使用Zookeeper实现leader选举