luogu P3743 kotori的设备

2023-10-28 17:20
文章标签 luogu 设备 kotori p3743

本文主要是介绍luogu P3743 kotori的设备,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原题链接:


kotori的设备 - 洛谷https://www.luogu.com.cn/problem/P3743

题目背景

kotori 有 n 个可同时使用的设备。

题目描述

第 i 个设备每秒消耗ai个单位能量。能量的使用是连续的,也就是说能量不是某时刻突然消耗的,而是匀速消耗。也就是说,对于任意实数 ,在 k 秒内消耗的能量均为k*ai 单位。在开始的时候第 i 个设备里存储着bi个单位能量。

同时 kotori 又有一个可以给任意一个设备充电的充电宝,每秒可以给接通的设备充能p 个单位,充能也是连续的,不再赘述。你可以在任意时间给任意一个设备充能,从一个设备切换到另一个设备的时间忽略不计。

kotori 想把这些设备一起使用,直到其中有设备能量降为 0。所以 kotori 想知道,

在充电器的作用下,她最多能将这些设备一起使用多久。

输入格式

第一行给出两个整数 n,p。

接下来 n 行,每行表示一个设备,给出两个整数,分别是这个设备的ai 和 bi。

输出格式

如果 kotori 可以无限使用这些设备,输出-1。

否则输出 kotori 在其中一个设备能量降为 0 之前最多能使用多久。

设你的答案为 a,标准答案为 b,只有当 a,b 满足 

 的时候,你能得到本测试点的满分。

输入输出样例

输入 #1复制

2 1
2 2
2 1000

输出 #1复制

2.0000000000

输入 #2复制

1 100
1 1

输出 #2复制

-1 

输入 #3复制

3 5
4 3
5 2
6 1

输出 #3复制

0.5000000000 

说明/提示

对于 100%的数据, 1<=n<=100000,1<=p<=100000,1<=ai,bi<=100000。

 思路:

        一道二分答案~,先二分需要的数,注意要用double二分,精度控制在1e-6就可以了

        如何验证答案?

        a[i]表示当前设备每秒需要消耗的电,b[i]表示当前设备剩余的电量,而要坚持x秒则需要的电量为a[i]*x再减去已经剩下的电量时就是需要消耗的充电宝电量,sum计算需要电量总和判断是否大于电宝在x秒内提供的电量x*q就行了 ,如果需要电量总和大于电宝能提供的电量则说明我们要找的答案在左边,如果小于说明还可以再多坚持一会。如果当前设备电量足够略过就行了。

        如何判无解?

        很简单,只要电宝每秒能提供的电量大于所有设备每秒消耗的电量就okkkkkk了

ACcode:

#include<bits/stdc++.h>
using namespace std;
double l = 0,r = 1e10;
double a[100005],b[100005];
double n,p,sum;
bool check(double x)
{double q=p*x;double sum = 0;for(int i = 1;i<=n;++i){if(a[i]*x<=b[i])	continue;sum+=a[i]*x-b[i];}return sum<=q;
}
int main()
{cin>>n>>p;for(int i = 1;i<=n;++i)cin>>a[i]>>b[i],sum+=a[i];if(sum<=p){cout<<-1<<endl;return 0;}while(r-l>1e-6){double mid = (r+l)/2;if(check(mid))	l = mid;else r = mid;}printf("%lf",l);return 0;
}

这篇关于luogu P3743 kotori的设备的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/294762

相关文章

如何编写Linux PCIe设备驱动器 之二

如何编写Linux PCIe设备驱动器 之二 功能(capability)集功能(capability)APIs通过pci_bus_read_config完成功能存取功能APIs参数pos常量值PCI功能结构 PCI功能IDMSI功能电源功率管理功能 功能(capability)集 功能(capability)APIs int pcie_capability_read_wo

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑燃料电池和电解槽虚拟惯量支撑的电力系统优化调度方法》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源程序擅长文章解读,论文与完整源程序,等方面的知识,电网论文源程序关注python

全英文地图/天地图和谷歌瓦片地图杂交/设备分布和轨迹回放/无需翻墙离线使用

一、前言说明 随着风云局势的剧烈变化,对我们搞软件开发的人员来说,影响也是越发明显,比如之前对美对欧的软件居多,现在慢慢的变成了对大鹅和中东以及非洲的居多,这两年明显问有没有俄语或者阿拉伯语的输入法的增多,这要是放在2019年以前,一年也遇不到一个人问这种需求场景的。 地图应用这块也是,之前的应用主要在国内,现在慢慢的多了一些外国的应用场景,这就遇到一个大问题,我们平时主要开发用的都是国内的地

驱动(RK3588S)第七课时:单节点设备树

目录 需求一、设备树的概念1、设备树的后缀名:2、设备树的语法格式3、设备树的属性(重要)4、设备树格式举例 二、设备树所用函数1、如何在内核层种获取设备树节点:2、从设备树上获取 gpio 口的属性3、获取节点上的属性只针对于字符串属性的4、函数读取 np 结点中的 propname 属性的值,并将读取到的 u32 类型的值保存在 out_value 指向的内存中,函数的返回值表示读取到的

海鲜加工污水处理设备处理效果高

诸城市鑫淼环保小编带大家了解一下海鲜加工污水处理设备处理效果高   海鲜加工污水处理设备通常采用物理、化学和生物处理相结合的方法,对废水中的污染物进行高xiao去除。设备设计紧凑,占地面积小,操作简便,适用于不同规模的海鲜加工厂。   设备特点   高xiao性:采用先进的处理工艺和技术,确保废水处理效果稳定可靠。   占地面积小:设备设计紧凑,占地面积小,适合在有限的空间内安装。

FHQ Treap模版(luogu P3369)

FHQ Treap模版(自用),带注释 #include<bits/stdc++.h>using namespace std;const int N=1e5+10;int n,root,idx;struct node{int l,r;int val,key,size;}tr[N];int getnew(int v){tr[++idx].val=v;//权值tr[idx].key=rand(

集运系统需要与哪些硬件设备集成?

随着电商和跨境贸易的不断发展,集运服务越来越受到海外用户的青睐。集运系统作为一种高效的跨境物流管理工具,可以协调各个环节之间的物流流程,提高物流效率和管理水平,被越来越多的集运企业采用。而集运系统作为集运服务的重要组成部分,也需要配套相应的硬件设备才能更好地支持跨境集运业务。下面就来介绍一下集运系统需要哪些硬件设备支持呢? 1.PDA:是一种便携式电子设备,可以轻松地进行数据采集和处理,具有移

3.门锁_STM32_矩阵按键设备实现

概述 需求来源: 门锁肯定是要输入密码,这个门锁提供了两个输入密码的方式:一个是蓝牙输入,一个是按键输入。对于按键输入,采用矩阵按键来实现。矩阵按键是为了模拟触摸屏的按键输入,后续如果项目结束前还有时间就更新为触摸屏按键输入。 矩阵按键开发整体思路: 由于矩阵按键就是GPIO的控制,所以不进行芯片和设备的分层编写,控制写在同一个文件中,最终向应用层提供一个接口。 代码层级关系:

Anroid BLE蓝牙(手机分别作为中心设备和外围设备)

蓝牙是一种短距的无线通讯技术,可实现固定设备、移动设备之间的数据交换。一般将蓝牙3.0之前的BR/EDR蓝牙称为传统蓝牙,而将蓝牙4.0规范下的LE蓝牙称为低功耗蓝牙。  BLE蓝牙模块主要应用领域     1、移动扩展设备     2、汽车电子设备     3、健康医疗用品:心跳带、血压计等     4、定位应用:室内定位、井下定位等     5、近距离数据采集:无线

RS在不同设备间同步文件

参考: 1. Resilio(BtSync)搭建 2. 使用Resilio Sync共享文件【附操作指南】 4. Linux 下挂载新硬盘方法 5. Partition 1 does not start on physical sector boundary. 6. Ubuntu 16.04添加开机启动脚本的方法 7. Ubuntu 16.04以普通用户身份开机启动 8. Ubunt