【洛谷】P9240 [蓝桥杯 2023 省 B] 冶炼金属

题目链接

P9240 [蓝桥杯 2023 省 B] 冶炼金属 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)



思路

这道题可以用数学的方法去做,但是我想不到😇有兴趣的可以去看看数学的题解 

比较简单的思路就是二分查找,轻松简单不费脑,带你体验一次ac的快感

具体操作找符合条件的区间的左右端点输出即可


代码

#include <bits/stdc++.h>
using namespace std;//二分查找 
int main()
{int N;cin >> N;vector<vector<int>> note(N, vector<int>(2));int left = 1, right = 0;for(int i = 0;i < N;i++){cin >> note[i][0] >> note[i][1];right = max(right, note[i][0]);}int tmp = right; //保存一下right的值 while(left < right) //查找左端点 {int mid = left + (right - left) / 2;int flag = 1; //检测是否所有记录都符合 for(int i = 0;i < N;i++){if(note[i][0] / mid > note[i][1]) //转换率低了 {left = mid + 1;flag = 0;}else if(note[i][0] / mid < note[i][1]) //转换率高了 {right = mid; //right不能等于mid-1,否则有跳出正确区间的风险 flag = 0;}}if(flag) //如果全部符合说明mid在正确的区间内,但是不一定是左端点 right = mid;}//当循环结束说明left和right重叠,此时即为左端点 int begin = left; //保存左端点 right = tmp; //重置right值 while(left < right) //查找右端点,需要修改一些细节 {int mid = left + (right - left + 1) / 2; //当区间元素为偶数个时,取右边的中点int flag = 1;for(int i = 0;i < N;i++){if(note[i][0] / mid < note[i][1]){right = mid - 1;flag = 0;}}if(flag)left = mid; //left不能等于mid+1,否则有跳出正确区间的风险 }//当循环结束说明left和right重叠,此时即为右端点 int end = right; //保存右端点 cout << begin << " " << end;return 0;
} 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/585839.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Claude 3 on Amazon Bedrock 结合多智能体助力 Altrubook AI 定义消费者 AI 新范式

关于 Altrubook AI 智能消费决策机器人 Altrubook 是全球首创场景化智能决策机器人&#xff0c;由国内外大厂等前员工共同研发&#xff0c;具有定制化 IP 决策机器人、沉浸式购物体验和需求匹配优化等独特优势。目前&#xff0c;Altrubook AI 已完成与 Claude 3 on Amazon Bedr…

STM32H5 读取温度传感器校准值时进 HardFault 的原因分析

1.前言 有客户反馈&#xff0c;在使用 STM32H5 读取温度传感器校准值地址时&#xff0c;会进入 HardFault&#xff0c;而在其他系列芯片中读取这个参数时并没有此现象。在 NUCLEO-H563ZI 开发板上去复现此问题&#xff0c;发现只有开启 ICACHE 后才会复现&#xff0c;初步验证…

ZCMU操作系统课程实验 - 实验1-Linux的使用

登录 1. 打开这个东西 2. 在 文件 - > 打开 中打卡机房里VMOS文件里的这个东东 3. 然后依次操作下去好了&#xff0c;有红色的选项&#xff0c;我都是选的"Do nothing"。完成后就会出现这样一个黑框框。 4. 让你登录。输入&#xff1a;root。密码&…

正则表达式浅析

正则表达式&#xff0c;又称正规表示法、常规表示法&#xff08;英语&#xff1a;Regular Expression&#xff0c;在代码中常简写为regex、regexp或RE&#xff09;&#xff0c;计算机科学的一个概念。正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。在很…

【技巧】如何解除Excel“打开密码”?

给Excel表格设置“打开密码”&#xff0c;可以保护表格不被他人随意打开&#xff0c;那如果后续不需要保护了&#xff0c;不想每次打开Excel都需要输密码&#xff0c;要怎么去除“打开密码”呢&#xff1f; 今天分享3个方法&#xff0c;最后一个方法记得收藏起来&#xff0c;以…

有哪些绝美的古诗词呀?

编辑搜图 请点击输入图片描述&#xff08;最多18字&#xff09; 绝美的古诗词是中国古代文化的重要组成部分&#xff0c;它们以优美的语言和深邃的意境&#xff0c;展现了古代人们的生活、情感和思想。以下是一些绝美的古诗词&#xff0c;它们不仅具有文学价值&#xff0c;更…

微功耗轨至轨运算放大器芯片D8541和D8542对比分析

D8541和D8542是芯谷科技推出的两款微功耗轨至轨运算放大器芯片&#xff0c;其中D8541为单运放&#xff0c;D8542为双运放&#xff0c;它特别适用于NTC温度采集电路、ADC基准电压电路、有源滤波器、电压跟随器、信号放大器等电路应用&#xff0c;在新能源充电桩、智能充电枪、储…

c# 插值搜索-迭代与递归(Interpolation Search)

给定一个由 n 个均匀分布值 arr[] 组成的排序数组&#xff0c;编写一个函数来搜索数组中的特定元素 x。 线性搜索需要 O(n) 时间找到元素&#xff0c;跳转搜索需要 O(? n) 时间&#xff0c;二分搜索需要 O(log n) 时间。 插值搜索是对实例二分搜索的改进&#xff0c;…

GaussDB云数据库极简版安装与使用-新手指南

一、前言 作为一款领先的企业级数据库管理系统&#xff0c;GaussDB 提供了强大的性能、高度可靠性和丰富的功能&#xff0c;是企业构建可靠、高性能的数据库解决方案的理想选择。 本文主要针对高校和个人测试环境&#xff0c;介绍极简版安装和使用过程&#xff0c;更加适合高…

深入云原生:解析 Docker 容器、Serverless 计算和微服务架构的实战应用

文章目录 一、前言二、行业顶尖技术实践精华集概览三、腾讯云容器和函数计算技术实践案例3.1 精选集中的 Stable Diffusion 腾讯云云原生容器部署实践3.2 精选集中的数数科技大数据查询引擎云原生实践3.2.1 大数据查询引擎技术痛点3.2.2 基于腾讯云云原生解决方案&#xff08;一…

Netty学习——源码篇10 Netty内存分配ByteBuf基础

1 初始ByteBuf ByteBuf是Netty整个结构中最为底层的模块&#xff0c;主要负责把数据从底层I/O读取到ByteBuf&#xff0c;然后传递给应用程序&#xff0c;应用程序处理完成后再把数据封装成ByteBuf写回I/O。所以&#xff0c;ByteBuf是直接与底层打交道的一层抽象。 2 ByteBuf的…

非关系型数据库之Redis配置与优化

一、关系数据库与非关系型数据库 1.1关系型数据库 关系型数据库是一个结构化的数据库&#xff0c;创建在关系模型&#xff08;二维表格模型&#xff09;基础上一般面向于记录。SQL语句&#xff08;标准数据查询语言&#xff09;就是一种基于关系型数据库的语言&#xff0c;用…