蓝桥杯上岸每日N题(鸡尾酒)

本文围绕蓝桥杯相关算法题展开,以鸡尾酒调制问题为例,给出题目描述,包括饮品比例、现有量及量杯容积等条件,介绍解题思路,按比例计算公共体积并取交集,还给出输入输出格式、数据范围及样例,同时罗列了蓝桥杯考点秘籍、往期题目回顾等内容。

大家好 我是寸铁 希望这篇题解对你有用,麻烦动动手指点个赞或关注,感谢您的关注!

题目描述

某种鸡尾酒由 n 种饮品(编号 1∼n)混合调制而成。

在调制该鸡尾酒时,n种饮品必须严格按照 a1:a2:…:an的比例进行混合。
n种饮品的实际现有量分别为 b1,b2,…,bn升。

现在,请你用一个最大容积为 v
升的量杯来调制该鸡尾酒,利用此量杯一次可以调制出 0∼v升鸡尾酒。

由于时间有限,你只能调制一次。

请问,利用现有材料和给定量杯,你最多可以调制出多少升鸡尾酒。

注意:

调制出的鸡尾酒量不一定是整数。
由于只能调制一次,所以无论材料多么充裕,你都最多只能调制出 v 升鸡尾酒。

输入格式

第一行包含两个整数 n,v。

第二行包含 n个整数 a1,a2,…,an。

第三行包含 n个整数 b1,b2,…,bn。

输出格式
一个实数,表示可以调制出的鸡尾酒的最大量(单位:升)。
输出结果与正确答案的相对或绝对误差小于 10−4,则视为正确。
数据范围

前 4个测试点满足 1≤n≤2。
所有测试点满足 1≤n≤20,1≤v≤10000,1≤ai≤100,0≤bi≤100。
输入样例1:
1 100
1
40

输出样例1:

40.0

输入样例2:

2 100
1 1
25 30

输出样例2:

50.0

输入样例3:

2 100
1 1
60 60

输出样例3:

100.0

思路

按下面比例混合
a1:a2:a3:...:an
不妨已该比例ai作为变量
去计算可以取出来的公共体积 x
a1 *x + a2*x+ a3*x +...+ an*x = (a1 + a2 + a3 + ... +an) * x


  1. 对于每一个**ai**有:
    ai * x <= bi (最多只能取bi升)
    0 < x <= bi / ai
  2. 对于所有ai有:
    sum+=a[i]
    sum * x <= v (最多只能取v升)
    0< x <= v / sum
    两者取交集即**x = min(x ,v / sum);**
    最后的答案:
    ans = x * sum

注意

xsum要取double
题目允许存在小数部分,不取double,会wa

Accode

import java.util.*;
public class Main{
   
   
    static int N = 30;
    static int a[] = new int[N];
    static int b[] = new 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

寸 铁

感谢您的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值