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

P4653 [CEOI 2017] Sure Bet

题目描述

现在有 n 个A类灯泡和 n 个B类灯泡,每个灯泡都有各自的权值。

我们将这些灯泡分为 n 组,每组包含一个来自A类的灯泡和一个来自B类的灯泡。

你可以从中选取任意个灯泡,每选取一个灯泡需要花费 1 的代价。

在你选取完之后,系统会随机在A类和B类中选择一个类型,并点亮那一类的所有灯泡。你选取的每个点亮的灯泡会给你带来等于它权值的收益。

现在请你合理选取灯泡,以最大化可能的最小收益。你只需要求出来这个收益即可。

输入格式

第一行一个正整数 n ,表示灯泡的组数。

接下来 n 行每行两个空格隔开的实数 Ai​,Bi​​​。分别表示属于这组的A灯泡和B灯泡的权值。输入的实数不会超过四位小数。

输出格式

输出最大化的最小可能收益,请输出到小数点后恰好四位。

输入输出样例 #1

输入 #1

4
1.4 3.7
1.2 2
1.6 1.4
1.9 1.5

输出 #1

0.5000

说明/提示

样例解释

最优策略是选择第一组的B灯泡和第三组的A灯泡和第四组的A灯泡:

  • 如果B类灯泡被点亮,收益是 3.7−3=0.7。
  • 如果A类灯泡被点亮,收益是 1.6+1.9−3=0.5。

最小可能收益是 0.5。

数据范围

对于所有测试点,有 1.0≤Ai​,Bi​≤1000.0,0≤n≤105。

代码参考

#include<bits/stdc++.h>
using namespace std;int n;
double ans;
double A[100001], B[100001];
bool t[100001][2]; bool cmp(double a, double b) 
{return a > b;
}int main() 
{scanf("%d", &n);for(int i = 1; i <= n; i++) scanf("%lf %lf", &A[i], &B[i]);sort(A + 1, A + n + 1, cmp);sort(B + 1, B + n + 1, cmp);double a = 0.0, b = 0.0;for(double i = 1, j = 1; i <= n && j <= n;) {int x = i, y = j; a += A[x] * double(!t[x][0]);b += B[y] * double(!t[y][1]);t[x][0] = t[y][1] = 1;  // 标记已遍历的数据 ans = max(ans, min(a - i - j, b - i - j));  // 计算价值 if(a >= b) j++;if(a <= b) i++;}printf("%.4lf\n", ans);  // 输出保留4位小数return 0;
}
http://www.jsqmd.com/news/13700/

相关文章:

  • 20251014
  • 歌词本。 - Slayer
  • 2025.10.14 正睿二十连测
  • singleton_pattern
  • 20251014周二日记
  • 财务怎样做到业财融合 - 智慧园区
  • CF2146E
  • Gradle使用
  • 【博客导航】
  • 部署向量数据库milvus
  • 从 0 到 1 实现高性能日志库 MiniSpdlog — 这可能是最适合新手的日志系统实战项目 !
  • 思想惰性:警惕时代中的精神惯性
  • 完整教程:S7-200 SMART 开放式用户通信(OUC)深度指南:TCP/ISO-on-TCP(上)
  • 完整教程:port trunk pvid vlan vlan-id 概念及题目
  • 从后端转行为AI工程师,转行AI大模型开发,附全套学习资源!收藏这份指南! - 实践
  • 实验一:现代C++初体验
  • 2025秋_11
  • CSP-S模拟31 笔记
  • 乐云具身活动体验
  • 【技术解决方案】联邦学习中遇到的Non-IID问题——隐语SecretFlow
  • 10.14 闲话:KTT
  • 题解:P10104 [GDKOI2023 提高组] 异或图
  • 2025 年筛网厂家推荐榜:聚焦场景适配与高效需求,锰钢筛网/聚氨酯筛网/合金焊接筛网/自清洁筛网/防堵筛网厂家滨州沃森网业成优选
  • P7076 [CSP-S2020] 动物园
  • 汽车价格战全面熄火了?不卷价格该卷什么? - 教程
  • redis-4.0.11-1.ky10.sw_64.rpm安装教程(申威麒麟V10 64位系统详细步骤)
  • P10067 [CCO 2023] Real Mountains
  • 先辈题解
  • 详细介绍:并发编程原理与实战(三十三)AQS框架下手写简易可重入锁的实战解析
  • U-Boot启动探秘:从汇编到命令行的奇幻之旅 - 指南