蓝桥杯c/c++程序设计——冶炼金属

 冶炼金属

问题描述

小蓝有一个神奇的炉子用于将普通金属 O 冶炼成为一种特殊金属 X。这个炉子有一个称作转换率的属性 V,V 是一个正整数,这意味着消耗 V 个普通金属 O 恰好可以冶炼出一个特殊金属 X,当普通金属 O 的数目不足 V 时,无法继续冶炼。

现在给出了 N 条冶炼记录,每条记录中包含两个整数 A 和 B,这表示本次投入了 A 个普通金属 O,最终冶炼出了 B 个特殊金属 X。每条记录都是独立的,这意味着上一次没消耗完的普通金属 O 不会累加到下一次的冶炼当中。

根据这 N 条冶炼记录,请你推测出转换率 V 的最小值和最大值分别可能是多少,题目保证评测数据不存在无解的情况。

输入格式

第一行一个整数 N,表示冶炼记录的数目。

接下来输入 N 行,每行两个整数 A、B,含义如题目所述。

输出格式

输出两个整数,分别表示 V 可能的最小值和最大值,中间用空格分开。

样例输入

3
75 3
53 2
59 2

样例输出

20 25

样例说明

当 V=20 时,有:⌊75/20⌋=3⌊,⌊53/20⌋=2,⌊59/20⌋=2,可以看到符合所有冶炼记录。

当 V=25 时,有:⌊75/25⌋=3,⌊53/25⌋=2,⌊59/25⌋=2,可以看到符合所有冶炼记录。

且再也找不到比 20 更小或者比 25 更大的符合条件的 V 值了。

评测用例规模与约定

对于 3030% 的评测用例,1≤N≤10^2。

对于 6060% 的评测用例,1≤N≤10^3。

对于 100100% 的评测用例,1≤N≤10^4,1≤B≤A≤10^9。

运行限制

语言最大运行时间最大运行内存
C++1s256M
C1s256M
Java2s256M
Python33s256M
PyPy33s256M
Go3s256M
JavaScript3s256M

 代码一:

#include<iostream>
using namespace std;
int main()
{int n;cin>>n;int a,b,sun,sun2,min=1e9+1,max=0;for(int i=0;i<n;i++){cin>>a>>b;sun=a/b;sun2=a/(b+1)+1;if(sun<min) min=sun;if(sun2>max) max=sun2;}cout<<max<<" "<<min;return 0;
}

 

#include<iostream>
using namespace std;

这两行代码包含了输入输出流的标准库,并指明使用 std 命名空间。

const int N=1e9+1
int main()
{

这里定义了一个常量 N,并初始化为 10^9 + 1。接着是 main 函数的开始。

    int n;cin >> n;

声明了一个整型变量 n,并从标准输入读取一个整数存储到变量 n 中。

    int a[N],b[N],c[N],d[N];

声明了四个长度为 N(非常大)的整型数组 abcd

    for (int i = 0; i < n; i++){cin >> a[i] >> b[i];c[i] = a[i] / b[i];d[i] = a[i] / (b[i] + 1) + 1;}

循环 n 次,每次读取两个整数并分别存储到 a[i] 和 b[i] 中,然后分别计算 a[i] / b[i] 的结果并存储在 c[i] 中,计算 a[i] / (b[i] + 1) + 1 的结果并存储在 d[i] 中。

    int min = c[0], max = d[0];

初始化了两个变量 min 和 max 分别为 c[0] 和 d[0]

    for (int i = 0; i < n; i++){if (c[i] < min) min = c[i];if (d[i] > max) max = d[i];}

再次循环 n 次,每次对 c[i] 和 d[i] 分别进行比较,更新 min 和 max 的值。

    cout << max<<" "<< min;

输出 max 和 min

    return 0;
}

返回 0,表示程序正常结束。

代码分析: 

  1. #include<iostream>:这行代码包含了输入输出流的标准库,使得可以使用 cin 和 cout

  2. using namespace std;:这行代码表示使用标准命名空间,这样我们就可以直接使用 cin 和 cout 而不需要加上 std:: 前缀。

  3. const int N=1e9+1:这行代码定义了一个常量 N,并赋值为 1 亿零 1。

  4. int main():这行代码声明了程序的入口点,即 main 函数。

  5. int n;:这行代码声明了一个整型变量 n,用来存储输入的数量。

  6. cin >> n;:这行代码从标准输入读取一个整数并存储到变量 n 中。

  7. int a[N],b[N],c[N],d[N];:这行代码定义了四个长度为 N 的整型数组 abcd,这里要注意 N 非常大,可能会超出栈内存,建议使用动态内存分配。

  8. for (int i = 0; i < n; i++):从 0 循环到 n-1。

  9. { cin >> a[i] >> b[i]; c[i] = a[i] / b[i]; d[i] = a[i] / (b[i] + 1) + 1; }:循环体内部从输入中读取两个整数,分别存储在 a[i] 和 b[i] 中,然后分别计算 a[i] / b[i] 的结果并存储在 c[i] 中,计算 a[i] / (b[i] + 1) + 1 的结果并存储在 d[i] 中。

  10. int min = c[0], max = d[0];:定义了两个变量 min 和 max,并分别初始化为 c[0] 和 d[0]

  11. for (int i = 0; i < n; i++):又一个循环,这次也从 0 循环到 n-1。

  12. if (c[i] < min) min = c[i]; if (d[i] > max) max = d[i];:在循环中对 c[i] 和 d[i] 分别进行比较,更新 min 和 max 的值。

  13. cout << max<<" "<< min;:输出 max 和 min

  14. return 0;:返回 0,表示程序正常结束。

 

代码二:

#include<iostream> // 引入iostream头文件,用于输入输出流
using namespace std; // 命名空间int main()
{int n; // 声明变量n,用于表示输入的数对的个数cin >> n; // 输入n的值int a[100001], b[100001], c[100001], d[100001]; // 声明四个数组a、b、c、d,大小为100001// 循环读取n个数对for (int i = 0; i < n; i++){cin >> a[i] >> b[i]; // 输入第i个数对的值c[i] = a[i] / b[i]; // 计算c[i]d[i] = a[i] / (b[i] + 1) + 1; // 计算d[i]}int min = c[0], max = d[0]; // 初始化最小值和最大值为数组c和d的第一个元素// 遍历数组c和d,找到最小值和最大值for (int i = 0; i < n; i++){if (c[i] < min) min = c[i]; // 如果c[i]小于最小值,更新最小值if (d[i] > max) max = d[i]; // 如果d[i]大于最大值,更新最大值}cout << max<<" "<< min; // 输出最大值和最小值return 0; // 返回0,表示程序正常结束
}

注意事项:

当 V=20 时,有:⌊75/20⌋=3⌊,⌊53/20⌋=2,⌊59/20⌋=2,可以看到符合所有冶炼记录。

当 V=25 时,有:⌊75/25⌋=3,⌊53/25⌋=2,⌊59/25⌋=2,可以看到符合所有冶炼记录。

求取公式

 c[i] = a[i] / b[i];   //计算最大值(取最小的那个)
 d[i] = a[i] / (b[i] + 1) + 1;   //计算最小值  (取最大的那个)

列如:

75/3=25,53/2=26,59/2=29  取25,26,29,最小的那个即为最大值。

75/(3+1)+1=19,53/(2+1)+1=18,59/(2+1)+1=20 取19,18,20,最大的那个即为最小值。

如果出现部分样例不通过的现象,要注意 int a[100001], b[100001], c[100001], d[100001]; // 声明四个数组a、b、c、d,数组的取值范围。

运行截图

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

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

相关文章

Python - 深夜数据结构与算法之 Divide Conquer Backtrack

目录 一.引言 二.分治与回溯简介 1.Divide & Conquer 分治 2.BackTrack 回溯 三.经典算法实战 1.Combination-Of-Phone [17] 2.Permutations [46] 3.Permutations-2 [47] 4.Pow-X [50] 5.N-Queen [51] 6.Combinations [78] 7.Sub-Sets [78] 8.Majority-Elemen…

数组基础及相关例题

目录 1.一维数组的初始化 2.二维数组的初始化 3.字符数组 1.puts 2.gets 3.strcat 4.strcpy 5.strcmp 6.strlen ​编辑 7. strlwr与strupr 易错习题 1 2 3 4 5 6 1.一维数组的初始化 2.二维数组的初始化 注意 第一维的长度不用指定&#xff0c;第二维的…

方舟开发框架(ArkUI)概述

目录 1、基本概念 2、两种开发范式 3、开发框架的特性 4、UI开发&#xff08;ArkTS声明式开发范式&#xff09;概述 4.1、特点 4.2、整体架构 4.3、开发流程 方舟开发框架&#xff08;简称ArkUI&#xff09;为HarmonyOS应用的UI开发提供了完整的基础设施&#xff0c;包…

C# 通过SharpCompress.Archives.Rar解压RaR文件

/// <summary>/// 解压一个Rar文件/// </summary>/// <param name"RarFile">需要解压的Rar文件&#xff08;绝对路径&#xff09;</param>/// <param name"TargetDirectory">解压到的目录</param>/// <param name&…

基于SSM的学生成绩管理系统2.0

基于SSM的学生成绩管理系统2.0 一、系统介绍二、功能展示1.项目骨架2.成绩信息列表3.课程信息列表4.添加学生信息 四、其它1.其他系统实现五.获取源码 一、系统介绍 项目名称&#xff1a;基于SSM的学生成绩管理系统2.0 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Jav…

2024年科技盛宴“上海智博会·上海软博会”招商工作接近尾声

2024年上海智博会和上海软博会即将于3月份在上海跨国采购会展中心盛大召开。作为全球科技和软件行业的盛会&#xff0c;这两大展会汇集了业界顶尖的企业、创新技术和前瞻思想&#xff0c;吸引了来自世界各地的专业人士和参展商。 今年的展会将一如既往地为大家呈现最前沿的科技…

博易大师智星系统外盘资管系统的功能介绍!

1. 市场行情数据接收和显示&#xff1a;软件需要接收实时的市场行情数据&#xff0c;并将其以图形或数字的形式显示出来&#xff0c;包括价格、成交量、成交额等信息。 2. 交易操作界面&#xff1a;软件需要提供一个交易操作界面&#xff0c;供用户进行交易操作&#xff0c;包括…

DML语言(重点)———update

格式&#xff1a;update 要修改的对象 set 原来的值新值 -- 修改学员名字,带了简介 代码案例&#xff1a; -- 修改学员名字,带了简介 UPDATE student SET name清宸 WHERE id 1; -- 不指定条件情况下&#xff0c;会改动所有表&#xff01; 代码案例…

linux:下载、网络请求、端口

一&#xff1a;ping命令 可以通过ping命令,检查指定的网络服务器是否是可联通状态 语法: ping [-c num] ip或主机名 1、选项&#xff1a;-c,检查的次数&#xff0c;不使用-c选项&#xff0c;将无限次数持续检查 2、参数&#xff1a;ip或主机名&#xff0c;被检查的服务器的…

修复“找不到服务器IP地址”错误

“找不到服务器IP地址”错误是Chrome浏览器用户的常见问题&#xff0c;导致404消息和无法访问网页 一、错误解释&#xff1a;找不到服务器 IP 地址 当您在浏览器的地址栏中输入域名时&#xff0c;如果输入的域名与相应的 Internet 协议地址&#xff08;IP 地址&#xff09;不…

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《流量自适应方式下考虑热管道虚拟储能的电热能源系统优化调度》

这个标题探讨了在电热能源系统中&#xff0c;通过使用热管道作为一种虚拟储能手段&#xff0c;并结合流量自适应的方式&#xff0c;进行系统的优化调度。 流量自适应方式&#xff1a; 这可能指的是一种系统或算法&#xff0c;能够根据系统内部或外部的实时变化&#xff0c;自动…

python 通过opencv及face_recognition识别人脸

效果&#xff1a; 使用Python的cv2库和face_recognition库来进行人脸检测和比对的 0是代表一样 认为是同一人。 代码&#xff1a; pip install opencv-python pip install face_recognition# 导入cv2库&#xff0c;用于图像处理 import cv2 # 导入face_recognition库&#…

开源持续测试平台Linux MeterSphere本地部署与远程访问

文章目录 前言1. 安装MeterSphere2. 本地访问MeterSphere3. 安装 cpolar内网穿透软件4. 配置MeterSphere公网访问地址5. 公网远程访问MeterSphere6. 固定MeterSphere公网地址 前言 MeterSphere 是一站式开源持续测试平台, 涵盖测试跟踪、接口测试、UI 测试和性能测试等功能&am…

2023年国赛高教杯数学建模E题黄河水沙监测数据分析解题全过程文档及程序

2023年国赛高教杯数学建模 E题 黄河水沙监测数据分析 原题再现 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变化和人民生活的影响&#xff0c;以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾等方面都具有重要的理论指导…

Swagger快速入门

1、Swagger快速入门 1.1 swagger介绍 官网&#xff1a;https://swagger.io/ Swagger 是一个规范和完整的Web API框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 功能主要包含以下几点: A. 使得前后端分离开发更加方便&#xff0c;有利于团队协作…

Jenkins的邮箱配置和插件下载

启动&#xff1a;java -jar jenkins.war 一定在jenkins.war的目录下 进入cmd命令 浏览器输入网址&#xff1a;http://localhost:8080/login?from%2F 账号&#xff1a;admin 密码&#xff1a;123456 安装插件&#xff1a; 插件更新后重启下 配置邮箱账号&#xff1a; 3…

到底是前端验证还是后端验证

背景 软件应用研发中&#xff0c; 前端验证还是后端验证这是意识与认知问题。鉴于某些入门同学还不清楚&#xff0c;我们再来看下&#xff1a; 一. 从软件行业来自国外 Q: 前端验证和后端验证都是对同一个数据的验证&#xff0c;有什么区别&#xff1f; A: 二者的目的不同&…

有趣的多线程:累计相加-CompletableFuture优化

不优雅的地方 对结果的获取需要额外引入CountDownLatch等待所有线程执行完毕 CompletableFuture Future接口天然可以通过回调获取结果&#xff0c;所以可以利用CompletableFuture实现并行&#xff0c;并调用CompletableFuture.join获取结果 private static void completabl…

WPF中数据绑定转换器Converter

使用场景&#xff1a;ViewModel中的数据如果跟View中的数据类型不匹配。 下面是以int类型调控是否可见为例子 步骤一&#xff1a;创建转换器类 在xaml中查看Converter的定义可以知道Converter是一个接口类型&#xff0c;因此转换器的类定义需要使用这个接口 internal class Vi…

Thinkphp开发的返佣商城分销商城理财商城源码

&#xff08;本站长在localhost安装测试&#xff0c;发现提示有错&#xff0c;具体问题没有时间查找了&#xff0c;或者php解密插件没有安装&#xff0c;有能力的朋友自行折腾。&#xff09; 程序基于 THINKPHP6VUE 全新开发&#xff0c;保障安全的同时大大提高代码执行效率。…