题意

给定两个序列 a 和 b。

序列 a 中的各个数之间的比例可以得出一个 x 。

当 b 中比例满足 a 中比例,即 \(b_1\):\(b_2\):\(b_3\)…… \(=\) \(a_1\):\(a_2\):\(a_3\)……时,可以得出一个数 $x * \dfrac{b}{a} $。


分析

因为这是做汤按照一定比例才能得出一个与 x 成倍数关系的数

所以我们可以知道,如果有一个数与其他的数不成比例且小于其他数时,整个数列得出的数都会被那个数影响

所以我们先找出所有的 b/a 里面最小的那个,因为他决定了结果的大小。

然后让整个数列都以这个最小比例做汤求 x 。

另外,他给定了锅的大小也就是 x 的上限 v ,所以得出的那个数如果超过 v ,那就要把它赋值成 v 就好了。

注意:他要求你的数要与他的答案的差值大小不超过十的负四次方,也就是要你至少精确到小数点后四位


代码

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstdlib>
  4. #include<algorithm>
  5. #include<cmath>
  6. #define maxn 300050
  7. #define maxm 1010
  8. using namespace std;
  9. int n;
  10. double v,a[maxn],b[maxn],x[maxn];
  11. int main(){
  12. cin>>n>>v;
  13. for(int i=1;i<=n;i++) cin>>a[i];
  14. for(int i=1;i<=n;i++) cin>>b[i];
  15. for(int i=1;i<=n;i++){
  16. x[i]=b[i]/a[i];
  17. }
  18. sort(x+1,x+n+1);我开了一整个数组来求一个最小值有点浪费,其实可以通过边求边比的方法取;
  19. double ans=0.0;
  20. for(int i=1;i<=n;i++){
  21. ans+=x[1]*a[i];
  22. }
  23. ans=min(ans,v);
  24. printf("%.4lf",ans);
  25. return 0;
  26. }

制作不易,不喜勿喷。

CF42A的更多相关文章

随机推荐

  1. .NET 5 源代码生成器——MediatR——CQRS

    在这篇文章中,我们将探索如何使用.NET 5中的新source generator特性,使用MediatR库和CQRS模式自动为系统生成API. 中介者模式 中介模式是在应用程序中解耦模块的一种方式. ...

  2. C语言实现汉诺塔

    汉诺塔 要把A柱子上的盘子移动到C柱子上,在移动过程中可以借助B柱子,但是要求小的盘子在上大的盘子在下. 解题思路: 1.把A柱子上的前N-1个盘子借助C柱子,全部移动到B柱子上(过程暂不考虑),再把 ...

  3. 【WPF】 问题总结-RaidButton修改样式模板后作用区域的变化

    最近工作需要,需要重绘RaidButton控件,具体想要达成的的效果是这样的: 当点击按钮任意一个地方的时候,按钮的背景改变. 于是我是这样对控件模板进行修改的: <Style x:Key=&q ...

  4. Java学习日报7.19

    /** * *//** * @author 86152 * */package interest;import java.util.Scanner;public class Interest{ pub ...

  5. 使用ThreadLocal

    使用ThreadLocal 阅读: 135212 多线程是Java实现多任务的基础,Thread对象代表一个线程,我们可以在代码中调用Thread.currentThread()获取当前线程.例如,打 ...

  6. @Transactional注解失效的解决方案

    一.前言 开发中我们经常使用 @Transactional注解来启用Spring事务管理,但是如果使用方法不当,会遇到注解不生效该事务回滚的地方却没有回滚的问题. 总结下一般是以下几个原因: @Tra ...

  7. 解决使用Navicat等工具进行连接登录mysql的1521错误,(mysql为8.0版本)

    mysql 8.0的版本的加密方式和以前的不一样,因此使用Navicat等工具进行连接的时候,会报1521的异常. 解决方法如下: 登录mysql的命令行工具,输入如下代码: ALTER USER ' ...

  8. 并发编程--锁--volatile

    在讲volatile关键字之前我们先了解Java的内存模型,Java内存模型规定所有的变量都是存在主存当中,每个线程都有自己的工作内存.线程对变量的所有操作都必须在自己的工作内存中进行,而不能直接对主 ...

  9. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  10. .NET Core学习笔记(9)——Entity Framework Core之Code First

    上篇我们介绍了怎么通过已有的SQLServer表来创建实体类,本篇我们改用Code First的方式,由C#代码书写的实体类来生成SQLServer表.并且通过简单的Console APP往SQLSe ...