【洛谷】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;
} 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

pygame的搭建

pygame的介绍与环境搭建 Pygame模块 安装 WindowsR打开命令窗口&#xff0c;输入&#xff1a; pip install pygame 或者安装指定版本 pip install pygame 2.3.0常用模块 在Pygame框架中有很多模块&#xff0c;官方网址pygame news 。 其中最常用模块的具体说明如下表所示…

【Java SE】深入理解static关键字

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1.static关键字1.1 static的概念1.2 static的作用1.3 static的用法1.3.1 static修饰成员变量1.3.2 static修饰…

Ubuntu20安装python3.10

1、添加 deadsnakes PPA 到源列表 add-apt-repository ppa:deadsnakes/ppa apt update 2、安装 apt install python3.10 3设置默认版本为 Python3.10 查看所有python版本 ls -l /usr/bin/python* update-alternatives --install /usr/bin/python3 python3 /usr/bin/pytho…

居里亚斩获金定奖,第13届广州定制家居展见证品牌实力飞跃

2024年3月30日&#xff0c;第13届广州定制家居展圆满落幕。 作为年度首场定制家居专业大展&#xff0c;第13届广州定制家居展的展览规模达到了100,000平方米&#xff0c;吸引了超过350,000人次的关注&#xff0c;以及800多家参展企业的参与。 在百花齐放的定制家居品类中&#…

物联网监控可视化是什么?部署物联网监控可视化大屏有什么作用?

随着物联网技术的深入应用&#xff0c;物联网监控可视化成为了企业数字化转型的关键环节。物联网监控可视化大屏作为物联网监控平台的重要组成部分&#xff0c;能够实时展示物联网设备的运行状态和数据&#xff0c;为企业管理决策和运维监控提供了有力的支持。今天&#xff0c;…

第45期 | GPTSecurity周报

GPTSecurity是一个涵盖了前沿学术研究和实践经验分享的社区&#xff0c;集成了生成预训练Transformer&#xff08;GPT&#xff09;、人工智能生成内容&#xff08;AIGC&#xff09;以及大语言模型&#xff08;LLM&#xff09;等安全领域应用的知识。在这里&#xff0c;您可以找…

使用Git处理Github中提交有冲突的pull request

前言&#xff1a; 为什么要写这篇文章&#xff0c;因为前段时间有一个开源的github中的项目有一个朋友提交了一个pr看了下是帮忙优化了下代码&#xff08;十分感谢这位网友&#xff09;。但是他提交的pr刚好和我的项目有许多的冲突导致无法自动合并&#xff0c;在github中提示…

[蓝鲸有奖征文]蓝鲸6.1 CMDB 事件推送的开源替代方案

本文来自腾讯蓝鲸智云社区用户&#xff1a;木讷大叔爱运维 背景 在蓝鲸社区“社区问答”帖子中发现这么一个需求&#xff1a; 究其原因&#xff0c;我在《不是CMDB筑高墙&#xff0c;运维需要一定的开发能力&#xff01;》一文中已经介绍&#xff0c;在此我再简单重复下&#…

喜讯!全视通获评“医用气体行业优秀装备制造企业”称号

春意盎然&#xff0c;“渝”您相见。3月28日&#xff0c;“2024中国医学装备大会暨展览会”在重庆隆重启幕&#xff0c;本次展览会是我国医学装备领域政府部门、相关专家、头部企业深度参与的综合性展会&#xff0c;是先进技术最权威的展示平台之一&#xff0c;是引领创新发展的…

备战2024年中学生古诗文大会(初中组):单选题真题和独家解析

我们继续来做中学生古诗文大会&#xff08;初中组&#xff09;——简称初中生古诗文大会的一些真题&#xff0c;让大家了解初中生古诗文大会的考察内容和形式&#xff0c;并且提供了我独家的题目解析和答案&#xff0c;供初中的同学们学习和参考。 以下题目截取自我独家制作的在…

《基础设施即代码(IaC)》译者序

随着信息技术的飞速发展&#xff0c;我们对基础设施的理解也在不断深化。传统的基础设施往往被看作是硬件和软件的堆砌&#xff0c;而现在&#xff0c;基础设施的概念已经发生了巨大的变化。在当今这个信息化、数字化的时代&#xff0c;基础设施已经成为了企业和组织运行的核心…

Linux多进程通信(3)——详细说说共享内存原理及使用例程

1.共享内存原理及优缺点 共享内存的原理便是将相同的一片物理内存映射到进程A和进程B不同的逻辑地址空间&#xff0c;两个进程同时访问这块物理内存&#xff08;共享内存&#xff09;。 1&#xff09;优点 共享内存是进程间通信访问速度最快。 例如消息队列&#xff0c;FIFO&…

喜尔康众多智慧酒店解决方案亮相上海酒店展,“十档妇洗”技术惊艳全馆

日前&#xff0c;2024上海国际酒店及商业空间博览会在上海新国际博览中心盛大举行&#xff0c;2000品牌同时亮相&#xff0c;引发行业广泛关注。 作为行业领先的智能家居企业&#xff0c;喜尔康30年来专注于为大家居行业提供智能化解决方案&#xff0c;此次参展展出了超静音智能…

ssm校园订餐系统

ssm校园订餐系统 一、项目简介 本项目是一套基于SSM实现的网上订餐系统 或 在线点餐系统 或 外卖点餐系统&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的Java学习者。 详细介绍了网上订餐系统的实现&#xff0c;包括&#xff1a; 1.项目介绍 2.环境…

突破编程_前端_JS编程实例(分割窗体组件)

1 开发目标 分隔窗体组件旨在提供灵活的窗体分隔功能&#xff0c;支持横向分割与纵向分隔两种类型&#xff0c;并具备拖拽调整窗体比例的功能&#xff0c;同时提供最小比例设置&#xff0c;以防止窗体被过度缩小&#xff1a; 2 详细需求 2.1 分隔窗体类型 &#xff08;1&…

Ant Design Vue中的table与pagination的联合使用

效果&#xff1a; 代码&#xff1a; <a-table:dataSource"dataSource":columns"columns":pagination"pagination"change"handleTableChange":scroll"{ x: 100%, y: 600 }"> </a-table> export default defin…

零基础入门实战深度学习Pytorch课程下载

本课程旨在帮助零基础学员掌握PyTorch深度学习框架。通过实战项目&#xff0c;学员将学习神经网络基础、模型训练和调优技巧。逐步掌握深度学习核心概念&#xff0c;为未来在人工智能领域打下坚实基础。 课程大小:2.6G 课程下载&#xff1a;https://download.csdn.net/downlo…

网络安全 | 什么是云安全?

关注WX&#xff1a;CodingTechWork 云安全-介绍 云安全是为了解决企业安全所面临的外部和内部威胁&#xff0c;它是一组程序和技术的集合。企业在实施其数字化转型策略&#xff0c;并将各种云端工具和服务纳入企业基础架构中时&#xff0c;需要云安全保障业务顺利进行。 云计…

CentOS7.9排查网络带宽高占用的情况

//显示全部网卡 ifconfig //安装iftop yum install iftop -y //设定监测的网卡 iftop -i eth0 按 P 显示 host 信息及端口信息。 按 D 切换是否显示远端目标主机的端口信息。

15 - grace序列处理 - 十三点滑动平均法

grace序列处理 -十三点滑动平均法 滑动平均是一种常用的平滑数据的方法,可以用于去除噪声或者提取趋势。十三点滑动平均是指使用窗口大小为13的滑动平均,应用于GRACE序列处理中可以去除周年项的影响。 十三点滑动平均的计算公式为: y [ n ] = ( x [ n − 6 ]