当前位置: 首页 > news >正文

题解:洛谷 P3743 小鸟的设备

【题目来源】

洛谷:P3743 小鸟的设备 - 洛谷

【题目描述】

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

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

kotori 想把这些设备一起使用,直到其中有设备能量降为 \(0\)。所以 kotori 想知道,在充电器的作用下,她最多能将这些设备一起使用多久。

【输入】

第一行给出两个整数 \(n,p\)

接下来 \(n\) 行,每行表示一个设备,给出两个整数,分别是这个设备的 \(a_i\)\(b_i\)

【输出】

如果 kotori 可以无限使用这些设备,输出 \(−1\)

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

设你的答案为 \(a\),标准答案为 \(b\),只有当 \(a,b\) 满足 \(\frac{|a-b|}{max(1,b)}\le 10^{-4}\) 的时候,你能得到本测试点的满分。

【输入样例】

2 1
2 2
2 1000

【输出样例】

2.0000000000

【解题思路】

image

【算法标签】

《洛谷 P3743 kotori的设备》 #贪心# #二分# #Special judge#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 全局变量:
// n: 设备数量
// p: 充电器功率
// a[100005]: 每个设备的能量消耗速率
// b[100005]: 每个设备的初始能量
// s: 所有设备的总能量消耗速率
// l, r, mid: 二分查找的左右边界和中间值
int n, p, a[100005], b[100005];
double s = 0, l, r, mid;int main()
{// 输入设备数量和充电器功率cin >> n >> p;// 输入每个设备的能量消耗速率和初始能量,并计算总消耗速率for (int i = 1; i <= n; i++){cin >> a[i] >> b[i];s += a[i];}// 检查是否可以无限使用(总消耗 <= 充电功率)if (s <= p){cout << -1 << endl;return 0;}// 初始化二分查找边界l = 0;      // 最小可能时间为0r = 1e10;    // 设置一个足够大的上界// 二分查找最大可使用时间while (l <= r){mid = l + (r - l) / 2;  // 计算中间时间值// 当左右边界足够接近时终止循环if (r - l < 0.00001){break;}double sum = 0;  // 需要补充的总能量// 计算所有设备在当前时间下需要补充的能量for (int i = 1; i <= n; i++){if (b[i] < mid * a[i])  // 如果初始能量不足{sum += mid * a[i] - b[i];  // 计算需要补充的能量}}// 判断充电器能否在mid时间内提供足够的能量if (sum <= p * mid)  // 可以满足,尝试更长时间{l = mid;}else  // 不能满足,尝试更短时间{r = mid;}}// 输出最大可使用时间(保留10位小数)printf("%.10lf", l);return 0;
}

【运行结果】

2 1
2 2
2 1000
1.9999996104
http://www.jsqmd.com/news/390095/

相关文章:

  • 题解:洛谷 P2678 [NOIP 2015 提高组] 跳石头
  • 构建跨行业三维空间智能治理中枢——矩阵视频融合 × 三角测量 × 数字孪生驱动全域风险前置控制
  • 论文阅读:arxiv 2025 Jailbreaking Attacks vs. Content Safety Filters: How Far Are We in the LLM Safety Ar
  • 复杂场景三维空间主动风险防控与智能调度系统——基于矩阵视频融合的空间级安全感知底座技术白皮书
  • 题解:洛谷 P1163 银行贷款
  • 题解:洛谷 P1182 数列分段 Section II
  • 正规的美团礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
  • 题解:洛谷 P2440 木材加工
  • 【LeetCode 每日一题】3314. 构造最小位运算数组 I —— (解法二) - 详解
  • 题解:洛谷 P1102 A-B 数对
  • Smoke and Mirrors inspiration
  • 这个时间序列预测模型有点意思,直接上代码更直观。咱们先看看整个模型的架构长啥样
  • 题解:洛谷 P1678 烦恼的高考志愿
  • 行业内服务好的盒马鲜生礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1024 [NOIP 2001 提高组] 一元三次方程求解
  • 题解:洛谷 P2249 【深基13.例1】查找
  • 信任就是最好的协作:openclaw的系统提示词分析
  • AI大模型高薪方向揭秘:大模型时代,小白也能弯道超车?高薪收藏帖+90天转型路线图免费领!
  • 大模型国家标准落地,大模型应用指南:小白也能掌握的金融科技新趋势,收藏学习必备!
  • 阿里通义千问团队揭秘Gated Attention,让你的大模型学习效率飙升,速收藏!
  • 从DeepSeek到Seedance2.0,大模型集体爆发!国产AI突然跃迁,小白也能轻松上车收藏!
  • 2026大学生转行,推荐一个好就业的方向——人工智能大模型,开启高薪就业新赛道!
  • 【Hot100-Java便捷】:两数之和 (Two Sum) —— 从暴力枚举到哈希表的思维跃迁
  • 键盘与鼠标:人机交互的奥秘深度解析:原理、实战与踩坑记录
  • OpenClaw怎么做到不串台、能并行、还总回对群 amp;#129302;✅(含源码解析)--OpenClaw系列第1期
  • GLM5.0发布:国产算力突破,大模型进化为智能工作系统,速来收藏学习!
  • AI产品经理转行大模型必读,央视都说AI大模型人才缺口大,为什么大家还是找不到工作?
  • Transformer大模型从入门到进阶:25+核心知识点解析(收藏版)
  • 2026主流电商小程序平台深度测评:功能优势与适用场景全解析