题目描述

最大化平均值

二分一个\(x\)

\(check\):

\(\frac{F+\sum_{i=1}^{n} X_{i} \times F_{i}}{M+\sum_{i=1}^{n} X_{i} \times M_{i}}\geq x\)

\(F+\sum_{i=1}^{n} X_{i} \times F_{i} \geq M \times x+\sum_{i=1}^{n} X_{i} \times M_{i} \times x\)

\(F-M \times x+\sum_{i=1}^{n} (X_{i} \times F_{i}-X_{i} \times M_{i} \times x)\ge 0\)

贪心的将\(1\)到\(n\)中大于\(0\)的\((X_{i} \times F_{i}-X_{i} \times M_{i} \times x)\)加起来,判断一下就可以了

#include<algorithm>
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std; const int MAXN=10010; int n,M,F,f[MAXN],m[MAXN]; inline bool check(double x){
double sum=F-M*x;
for(int i=1;i<=n;++i)
sum+=max(0.0,f[i]-m[i]*x);
return sum>=0;
} int main()
{
scanf("%d%d%d",&F,&M,&n);
for(int i=1;i<=n;++i)
scanf("%d%d",&f[i],&m[i]);
double l=0,r=1e18;
while(r-l>0.001){
double mid=(l+r)/2.0;
if(check(mid)) l=mid;
else r=mid;
}
bool flag=0;
for(int i=1;i<=n;++i)
if(f[i]-m[i]*l>0) printf("%d\n",i),flag=1;
if(!flag) puts("NONE");
return 0;
}

【luoguP2989】[USACO10MAR]对速度的需要Need For Speed的更多相关文章

  1. linux下ssd电子盘速度检测

    代码: #include<stdio.h> #include<sys/time.h> #include <fcntl.h> #include <pthread ...

  2. Android MediaPlayer 音频倍速播放,调整播放速度

    本文链接: Android MediaPlayer 倍速播放,调整播放速度 现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5.1.5.2倍等等. 从Android API 2 ...

  3. 读取Simulink中Dataset类型的数据

    http://files.cnblogs.com/files/pursuiting/%E5%80%92%E7%AB%8B%E6%91%86%E6%8E%A7%E5%88%B6%E7%B3%BB%E7% ...

  4. reflow和repaint(摘录自张鑫旭的翻译)

    //正文开始 关于回流(reflows)与重绘(repaints),我已经在twitter和delicious上发布,但是并没有在演讲中提到或是以文章形式发布. 第一次让我开始思考关于回流(reflo ...

  5. 知乎背景图 canvas 效果

    思路分析: 1.创造一块画布, 2.在画布内随机产生一些小球,小球位置,半径,颜射,大小,速度等都可以随机产生, 3.定义画小球函数与小球移动函数, 4.将每一个小球圆心都与其它小球链接, 5判断每一 ...

  6. Swiper说明&&API手册 【中文手册Swiper】

     原文地址:http://www.cnblogs.com/scavengers/p/3760449.html 示例: <link rel="stylesheet" href= ...

  7. Javascript运动基础

    javascript的运动非常实用,通过控制需要运动块的实际距离与要到达的距离的关系,结合定时器来控制小方块的各种运动. 运动框架 <!DOCTYPE html><html>& ...

  8. Swiper 中文API手册(share)

    本文分享自 http://www.cnblogs.com/scavengers/p/3760449.html ---------------------------华丽的分割线------------ ...

  9. Swiper.js 中文API手册

    本文分享自 http://www.cnblogs.com/scavengers/p/3760449.html ---------------------------华丽的分割线------------ ...

随机推荐

  1. javascript 对象之hasOwnProperty()方法

    hasOwnProperty()方法是判断某一个对象是否有你给出的属性名称,需要注意的是该方法无法检测该对象原型连中是否具有该属性 具体格式下: var person = {"name&qu ...

  2. Winform串口编程---接收数据demo(VSPD虚拟串口)

    参考地址:https://blog.csdn.net/memgxingfeixiang/article/details/52513970  https://blog.csdn.net/kevin_io ...

  3. 【转载】 使用宝塔Linux面板功能查看服务器内存使用情况

    运维过阿里云服务器或者腾讯云服务器的运维人员都知道,针对占用内存比较高的应用或者服务等,我们需要时刻关注服务器的内存使用率,是否存在内存瓶颈等情况的出现.阿里云和腾讯云官方后台界面的监控数据页面也有相 ...

  4. 使用input的file进行上传进行预览

    在使用file上传文件的时候,想到了图片预览的功能,然后查询了一些资料,一种是需要后端配合,将数据变成base64或者buff等数据传给后端然后调取接口进行显示,但是这种需要后端的配合和网络请求,感觉 ...

  5. open abc.txt: The system cannot find the file specified

    使用io/ioutil包读取文件时报错:open abc.txt: The system cannot find the file specified 原因是:ioutil.ReadFile()这个方 ...

  6. profile name is not valid,The EXECUTE permission was denied on the object 'sp_send_dbmail', database 'msdb', schema 'dbo'.

    使用不是sysadmin权限的账号执行存储发邮件,报异常profile name is not valid, EXEC msdb.dbo.sp_send_dbmail @profile_name = ...

  7. Windows系统下安装VirtualBox及安装Ubuntu16.04

    1.软件介绍 VirtualBox VirtualBox 是一款免费的开源虚拟机软件,所谓虚拟机软件,就是能够提供各种模拟的硬件环境,并且在其上安装各种操作系统,目前支持Window,Linux,Ma ...

  8. Letsencrypt.org CA免费证书生成

    Letsencrypt.org CA免费证书使用 Let's 支持多中客户端,这里使用acme.sh客户端配置免费证书. acme.sh优点: github官方地址 纯用Shell(Unix外壳)语言 ...

  9. HTML那些标签已废弃,被代替

    表单:cellpadding,cellspacing属性:已废弃, 替代者: table { border-collapse:collapse; } table, td, th { border:1p ...

  10. 详解Spring缓存注解@Cacheable,@CachePut , @CacheEvict使用

    https://blog.csdn.net/u012240455/article/details/80844361 注释介绍 @Cacheable @Cacheable 的作用 主要针对方法配置,能够 ...