(蓝桥杯第十四届c解法,部分题目)​一、冶炼金属​二、飞机降落

2023年第十四届蓝桥杯大赛软件类省赛C/C++大学B组真题

一、冶炼金属

题目:

问题描述

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

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

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

输入格式

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

接下来输入 NN 行,每行两个整数 AA、BB,含义如题目所述。

输出格式

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

样例输入

3
75 3
53 2
59 2

样例输出

20 25

样例说明

当 V=20V=20 时,有:⌊7520⌋=3⌊2075​⌋=3,⌊5320⌋=2⌊2053​⌋=2,⌊5920⌋=2⌊2059​⌋=2,可以看到符合所有冶炼记录。

当 V=25V=25 时,有:⌊7525⌋=3⌊2575​⌋=3,⌊5325⌋=2⌊2553​⌋=2,⌊5925⌋=2⌊2559​⌋=2,可以看到符合所有冶炼记录。

且再也找不到比 2020 更小或者比 2525 更大的符合条件的 VV 值了。

评测用例规模与约定

对于 3030% 的评测用例,1≤N≤1021≤N≤102。

对于 6060% 的评测用例,1≤N≤1031≤N≤103。

对于 100100% 的评测用例,1≤N≤1041≤N≤104,1≤B≤A≤1091≤B≤A≤109。

题解:

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main(int argc, char *argv[])
{int a,b,n,c,d;int max=INT_MAX;int min=-1;scanf("%d",&n);for(int i=0;i<n;i++){scanf("%d %d",&a,&b);c=a/b;if(c<max){max=c;}d=a/(b+1)+1;if(d>min){min=d;}}printf("%d %d",min,max);return 0;
}

二、飞机降落

题目:

问题描述

NN 架飞机准备降落到某个只有一条跑道的机场。其中第 ii 架飞机在 TiTi​ 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 DiDi​ 个单位时间,即它最早可以于 TiTi​ 时刻开始降落,最晚可以于 Ti+DiTi​+Di​ 时刻开始降落。降落过程需要 LiLi​ 个单位时间。

一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。

请你判断 NN 架飞机是否可以全部安全降落。

输入格式

输入包含多组数据。

第一行包含一个整数 TT,代表测试数据的组数。

对于每组数据,第一行包含一个整数 NN。

以下 NN 行,每行包含三个整数:TiTi​,DiDi​ 和 LiLi​。

输出格式

对于每组数据,输出 YESYES 或者 NONO,代表是否可以全部安全降落。

样例输入

2
3
0 100 10
10 10 10
0 2 20
3
0 10 20
10 10 20
20 10 20

样例输出

YES
NO

样例说明

对于第一组数据,可以安排第 33 架飞机于 00 时刻开始降落,2020 时刻完成降落。安排第 22 架飞机于 2020 时刻开始降落,3030 时刻完成降落。安排第 11 架飞机于 3030 时刻开始降落,4040 时刻完成降落。

对于第二组数据,无论如何安排,都会有飞机不能及时降落。

评测用例规模与约定

对于 3030% 的数据,N≤2N≤2。

对于 100100% 的数据,1≤T≤101≤T≤10,1≤N≤101≤N≤10,0≤Ti,Di,Li≤1050≤Ti​,Di​,Li​≤105。

#include<bits/stdc++.h>
using namespace std;
const int N=15;int t,n;
//t:测试数据次数
//n:n架飞机 
bool flag,visit[N];
//第n架飞机是否在dfs中被访问
//flag: 用于判断全部飞机是否能降落 struct p
{int time,delay,land; 
};
//p:结构体p表示飞机的信息void dfs(int cnt,int last,vector<p>v)
{if(!cnt){flag=true;return;}//如果访问个数已经=飞机架数,说明所有飞机可以降落,跳出循环 for(int i=1;i<=n;i++){if(!visit[i] && v[i].time+v[i].delay >= last)//若这架飞机还没被访问,且这架飞机的最长等待时间>上一架飞机完成降落的时间//则继续dfs {visit[i]=true;dfs(cnt-1,max(last,v[i].time)+v[i].land,v);//下一次dfs的last=max(上架飞机完成降落的时间,这架飞机到达的时间)+这架飞机完成降落的时间visit[i]=false;//回溯 }}//若无法完成降落,flag还是false 
}int main()
{cin >> t;while(t--){memset(visit,false,sizeof(visit));///每次询问需要重置visit数组cin >> n;vector<p>v(N);//v数组即p数组 for(int i=1;i<=n;i++){cin >> v[i].time >> v[i].delay >> v[i].land;} flag=false;//每次访问重置flag dfs(n,0,v); if(flag){cout << "YES" << endl;}else{cout << "NO" << endl;}}return 0;
}

下面是逐行详细解释代码的含义:

下面是逐行详细解释代码的含义:#include<bits/stdc++.h>:这行代码包含了一个头文件,其中包含了所有的标准库文件。这是一个快捷方式,可以包含常用的库。using namespace std;:这行代码允许你使用标准库的函数和对象,而无需指定std::前缀。const int N=15;:这行代码定义了一个常量变量N,其值为15。它表示最大飞机数量。int t,n;:这行代码声明了两个整数变量t和n。t表示测试用例的数量,n表示飞机的数量。bool flag,visit[N];:这行代码声明了两个布尔变量flag和visit,其中visit是一个大小
为N的数组。flag用于确定是否所有飞机都可以降落,visit用于跟踪飞机在DFS遍历中是否被访问过。struct p { int time, delay, land; };:这行代码定义了一个结构体p,表示飞机的信息。
它有三个整数成员:time(飞机到达时间)、delay(飞机允许的最大延误时间)和land
(飞机降落所需时间)。void dfs(int cnt, int last, vector<p> v):这行代码定义了一个递归函数dfs,
执行深度优先搜索。它接受三个参数:cnt(尚未访问的飞机数量)、last(上一架飞机降落的时间)
和v(飞机信息的向量)。if (!cnt) { flag = true; return; }:这行代码检查是否所有飞机都已经访问过(cnt为零)。
如果是,则将flag设置为true,并从函数中返回,表示所有飞机都可以降落。for (int i = 1; i <= n; i++):这行代码开始一个循环,遍历所有的飞机。if (!visit[i] && v[i].time + v[i].delay >= last):这行代码检查当前飞机i
是否尚未访问过(!visit[i]),并且其到达时间和最大延误时间之和是否大于等于
上一架飞机降落的时间。如果两个条件都满足,则飞机可以降落。visit[i] = true;:这行代码将当前飞机标记为已访问。dfs(cnt - 1, max(last, v[i].time) + v[i].land, v);:这行代码使用更新后的参数
对dfs进行递归调用。它将未访问飞机数量减少一(cnt - 1),将上一架飞机降落时间更新
为当前最大时间和当前飞机到达时间的较大值(max(last, v[i].time)),并加上当前飞机
的降落时间(v[i].land)。visit[i] = false;:这行代码将当前飞机标记为未访问(回溯)。int main():这行代码开始主函数。cin >> t;:这行代码从输入中读取测试用例的数量。while (t--):这行代码开始一个循环,循环t次。memset(visit, false, sizeof(visit));:这行代码将visit数组重置为全部为
false的值。它确保在每个测试用例之前,没有飞机被标记为已访问。cin >> n;:这行代码从输入中读取当前测试用例的飞机数量。vector<p> v(N);:这行代码创建了一个大小为N的向量v,用于存储飞机的信息。for (int i = 1; i <= n; i++):这行代码开始一个循环,读取每架飞机的信息。cin >> v[i].time >> v[i].delay >> v[i].land;:这行代码从输入中读取当前
飞机的到达时间、最大延误时间和降落时间,并将它们存储在向量v中。flag = false;:这行代码在每个测试用例之前将flag变量重置为false。dfs(n, 0, v);:这行代码调用dfs函数执行深度优先搜索,初始参数为剩余n架飞机、
上一架飞机降落时间为0,以及包含飞机信息的向量v。60-64. 这几行代码检查flag的值,并输出"YES"表示所有飞机都可以降落,或输出"NO"表示不能。return 0;:这行代码结束主函数,并返回0以表示程序执行成功。

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

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

相关文章

阿里巴巴1688商品详情 API 接口示例

1688.item_get 公共参数 请求地址: https://o0b.cn/anzexi 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item_…

Windows ObjectType Hook 之 ParseProcedure

1、背景 Object Type Hook 是基于 Object Type的一种深入的 Hook&#xff0c;比起常用的 SSDT Hook 更为深入。 有关 Object Type 的分析见文章 《Windows驱动开发学习记录-ObjectType Hook之ObjectType结构相关分析》。 这里进行的 Hook 为 其中之一的 ParseProcedure。文章实…

7.spark sql编程

概述 spark 版本为 3.2.4&#xff0c;注意 RDD 转 DataFrame 的代码出现的问题及解决方案 本文目标如下&#xff1a; RDD ,Datasets,DataFrames 之间的区别入门 SparkSession创建 DataFramesDataFrame 操作编程方式运行 sql 查询创建 DatasetsDataFrames 与 RDDs 互相转换 使用…

创建基于多任务的并发服务器

有几个请求服务的客户端&#xff0c;我们就创建几个子进程。 这个过程有以下三个阶段&#xff1a; 这里父进程传递的套接字文件描述符&#xff0c;实际上不需要传递&#xff0c;因为子进程会复制父进程拥有的所有资源。 #include <stdio.h> #include <stdlib.h>…

如何再kali中下载iwebsec靶场

这个靶场有三种搭建方法&#xff1a; 第一种是在线靶场&#xff1a;http://www.iwebsec.com:81/ 第二种是虚拟机版本的&#xff0c;直接下载到本地搭建 官网地址下载&#xff1a;http://www.iwebsec.com/ 而第三种就是利用docker搭建这个靶场&#xff0c;我这里是用kali进行…

window10 定时任务

window10 定时任务 1、背景2、目标3、思路4、实操4.1、设置定时任务4.2、配置策略4.3、验证 1、背景 项目上由于业务调试需要&#xff0c;开具了一台window10系统&#xff0c;此台window10为项目组公共使用&#xff0c;为防止误操作分配了不通的账号&#xff0c;日常使用各自账…

react: 组件或页面卸载触发的钩子

Effects 可以返回一个 cleanup 函数 import { useEffect } from react let appDetailTimer null useEffect(() > {return () > {//如果定时器存在&#xff0c;推出页面时销毁定时器if (appDetailTimer) clearInterval(appDetailTimer)}}, [])

学习视频剪辑:巧妙运用中画、底画,制作画中画,提升视频效果

随着数字媒体的普及&#xff0c;视频剪辑已经成为一项重要的技能。在视频剪辑过程中&#xff0c;制作画中画可以显著提升视频效果、信息传达和吸引力。本文讲解云炫AI智剪如何巧妙运用中画、底画批量制作画中画来提升视频剪辑水平&#xff0c;提高剪辑效率。 操作1、先执行云…

聊聊logback的UNDEFINED_PROPERTY

序 本文主要研究一下logback的UNDEFINED_PROPERTY substVars ch/qos/logback/core/util/OptionHelper.java public static String substVars(String input, PropertyContainer pc0, PropertyContainer pc1) {try {return NodeToStringTransformer.substituteVariable(input,…

​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?

在当今汽车行业中&#xff0c;随着消费者偏好的多样化和年轻化&#xff0c;汽车制造商们正面临着前所未有的挑战与机遇。在2023年上海车展上&#xff0c;起亚汽车公司正式发布了全新紧凑级SUV——赛图斯。这款车型不仅标志着起亚对年轻消费市场的深入洞察&#xff0c;也展现了公…

物联网对接协议

物联网对接协议有很多种&#xff0c;以下是几种常见的物联网对接协议&#xff1a; Modbus&#xff1a;是一种强大的通信标准&#xff0c;广泛应用于工业自动化和SCADA系统&#xff0c;以便将仪表、传感器和执行器的信号发送回主控制器。 Modbus具有广泛的通信协议&#xff0c;…

Springboot+vue的导师双选管理系统(有报告)。Javaee项目,springboot vue前后端分离项目。

演示视频&#xff1a; Springbootvue的导师双选管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot vue前后端分离项目。 项目介绍&#xff1a; 本文设计了一个基于Springbootvue的前后端分离的导师双选管理系统&#xff0c;采用M&#xff08;model&a…

软件测试需不需要懂代码?

无论是刚入测试行业的萌新&#xff0c;还是已经在测试行业闯荡了两三年的小司机们&#xff0c;都会琢磨一个问题&#xff1a;如果要持续发展下去&#xff0c;我要不要懂代码&#xff1f; 在软件测试初级阶段&#xff0c;不需要编程能力。但是任何一个职业&#xff0c;都会追求…

数据库实验:SQL的数据控制

目录 数据控制实验目的实验内容实验要求实验过程实验内容提纲实验过程 数据控制 数据控制SQL语句(DCL)是一类可对用户数据访问权进行控制的操作语句&#xff0c;可以控制特定用户或角色对数据表、视图、存储过程、触发器等数据对象的访问权限。主要有GRANT、REVOKE、DENY语句操…

微服务之Nacos注册管理

文章目录 一、Nacos安装步骤1.安装地址2.安装版本3.目录说明4.端口配置5.启动 二、Nacos服务注册1.Nacos依赖2.客户端修改配置文件3.启动效果图4.总结 三、Nacos服务集群属性1.服务跨集群调用问题2.服务集群属性3.总结 四、Nacos根据集群负载均衡1.修改配置文件2.设置集群服务类…

一题都看不懂,大厂的面试是真的变态......

最近我的一个读者朋友去了字节面试&#xff0c;来给我发信息吐槽&#xff0c;说字节的面试太困难了&#xff0c;像他这种三年经验的测试员&#xff0c;在技术面&#xff0c;居然一题都答不上来&#xff0c;这要多高的水平才能有资格去面试字节的测试岗位。 确实&#xff0c;字…

浅析应急疏散照明设计在高层建筑中的应用

【摘要】作为工程设计人员&#xff0c;对高层建筑的应急照明设计应有足够的认识和重视&#xff0c;以保证在出现失火事件时&#xff0c;可以有效地引导建筑内的人员安全逃离、正确疏散&#xff0c;这是建筑设计的*大价值所在。在设计应急照明时&#xff0c;应根据当地的情况选择…

【操作系统】2009年408真题第 46 题

文章目录 题目描述1&#xff09;依次访问上述三个虚地址&#xff0c;各需多少时间&#xff1f;给出计算过程2&#xff09;基于上述访问序列&#xff0c;虚地址1565H的物理地址是多少&#xff1f;请说明理由 原题 & 官方题解 题目描述 46&#xff08;8分&#xff09;请求分…

集简云API集成:轻松连接CRM和广告推广系统,助力海外市场用户运营

连接海外市场数据采集 随着全球化的深入发展&#xff0c;集简云的用户中有越来越多的企业和个人开始将目光聚焦在海外市场&#xff0c;如何获取准确、及时的海外市场数据显得尤为重要。而数据采集则成为了一种高效、快捷、精准地获取海外数据的方法。在这个背景下&#xff0c;…

LiveMeida视频接入网关

一、产品简介 视频接入网关主要部署在视频存储节点或视频汇聚节点&#xff0c;面向不同用户&#xff0c;主要用于对接不同厂家、不同型号的摄像机设备&#xff0c;获取摄像机视频后&#xff0c;以统一标准的视频格式和传输协议&#xff0c;将视频推送至上层联网/应用平台。可…