(蓝桥杯第十四届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.rhkb.cn/news/184295.html

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

相关文章

python使用pysqlcipher3对sqlite数据库进行加密

python对很多项目都需要对sqlite数据库的数据进行加密&#xff0c;最流行的加密方式是使用pysqlcipher3&#xff0c;当前使用的python版本为3.7&#xff0c;本博文是直接使用pysqlcipher3在项目上的应用&#xff0c;使用的是已编译好的pysqlcipher3包&#xff0c;如果你需要pys…

很多个pdf怎么合并在一起?

很多个pdf怎么合并在一起&#xff1f;作为一个办公室的伙伴&#xff0c;对于PDF格式肯定不会陌生。它强大的功能为我们的工作提供了许多便利。由于PDF文件格式的稳定性和安全性较高&#xff0c;我们通常在工作或学习中使用它来传输文件&#xff0c;很多人都喜欢将办公文件都做成…

【electron】【附排查清单】记录一次逆向过程中,fetch无法请求http的疑难杂症(net::ERR_BLOCKED_BY_CLIENT)

▒ 目录 ▒ &#x1f6eb; 导读需求开发环境 1️⃣ Adblock等插件拦截2️⃣ 【失败】Content-Security-Policy启动服务器json-serverhtml中的meta字段 3️⃣ 【失败】https vs httpwebPreferences & allowRunningInsecureContent disable-features 4️⃣ 【失败】检测fetch…

Django快速指南

开始构建 Web 应用程序不仅需要对编码和设计原则有深入的了解&#xff0c;还需要对安全性和性能坚定不移的承诺。在数字化存在至关重要的时代&#xff0c;构建强大而高效的在线平台的能力是一项具有不可估量价值的技能。本教程专门面向网络工匠&#xff0c;即那些希望将技术线索…

【Git】Git 学习笔记_操作远程仓库

1. SSH 配置和克隆仓库 ssh-keygen -t rsa -C "xxxqq.com"回车后出现以下内容&#xff0c;直接回车&#xff1a; Generating public/private rsa key pair. Enter file in which to save the key (/Users/your_user_directory/.ssh/id_rsa): (按回车键) Enter pass…

干洗店洗鞋店管理系统app小程序;

干洗店洗鞋店管理系统是一款专业的洗衣店管理软件&#xff0c;集成了前台收费收银系统、会员卡管理系统和财务报表系统等强大功能。界面简洁优美&#xff0c;操作直观简单。这款系统为干洗店和洗衣店提供了成本分析、利润分析、洗衣流程管理等诸多实用功能&#xff0c;用全新的…

全方位监控基础设施,坚实守护您的业务稳定!

前言 基础设施服务是产业数字化转型建设的重要组成部分之一。当我们反复讨论如何实现高效、精确的全局监控&#xff0c;也许能从观测云借助一套方案来探索、检查和监控分布式基础架构中的每个关键部分这一操作中习得一些灵感。 在针对企业的平台中内嵌实时的基础设施监控工具…

An error occurred while filtering resources

Description Path Resource Location Type An error occurred while filtering resources PMS line 1 Maven Java EE Configuration Problem不知道怎么跑出来了&#xff0c;update project 还是不行

MS35229电机驱动器可兼容DRV8833

MS35229N/MS35229TE 是一款 12V 静音步进电机驱动芯片&#xff0c;工作电压最大可以工作到 15V&#xff0c;输出 RMS 电流1A。芯片内置 256 细分的微步进驱动技术&#xff0c;静音与低振动特性适合于各种精微控制系统。 芯片集成通用的 IC 接口以及内部指令缓存器&#xff0c;使…

linux之进程控制

进程创建&fork函数 fork函数之前就已经提到,它从已存在进程中创建一个新进程,新进程为子进程,而原进程为父进程。 调用接口&#xff1a;fork() 头文件&#xff1a;unistd.h 功能&#xff1a;创建一个子进程&#xff0c;给子进程返回0&#xff0c;父进程返回子进程pid …

C语言 指针进阶

目录 数组指针 指针数组访问数组元素 再次讨论数组名 数组指针访问一维数组&#xff08;但是这样会很别扭&#xff09; 访问二维数组元素 非数组指针访问 数组指针访问 数组传参Demo 一维数组传参 二维数组传参 指针数组指针 字符指针 函数指针 函数指针调用时可以…

秒懂!用这10款思维导图软件,让头脑风暴如虎添翼!

世界上最糟糕的感觉之一就是忘记了一个伟大的点子。原本你只需把它记下来&#xff0c;但你当时确信自己绝不会忘记如此引人入胜的事物。然而&#xff0c;当这个想法从你的脑海彻底消失时&#xff0c;分分钟会让人崩溃。 如果你的想法有很多组成部分&#xff0c;比如一个大项目…

ARMday02(汇编语法、汇编指令)

汇编语法 汇编文件中的内容 1.伪操作&#xff1a;在汇编程序中不占用存储空间&#xff0c;但是可以在程序编译时起到引导和标识作用 .text .global .glbal .if .else .endif .data .word.... 2.汇编指令&#xff1a;每一条汇编指令都用来标识一个机器码&#xff0c;让计算机做…

深度学习之基于YoloV5的火灾检测系统

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 火灾检测系统基于YoloV5的介绍 火灾检测是一项重要的安全任务&#xff0c;它旨在及时发现和报警火灾风险。基于深度…

MyBatis-plus超神用法--一文带你玩转MP

前言 MyBatis-Plus是一个基于MyBatis的增强工具&#xff0c;提供了很多便捷的功能和增强的功能&#xff0c;以下是一些MyBatis-Plus的超神用法&#xff1a; 通用Mapper&#xff1a;MyBatis-Plus提供了通用Mapper的功能&#xff0c;可以通过继承BaseMapper接口&#xff0c;实现…

Gradle笔记 四 Gradle的核心 TASK

文章目录 Task任务入门任务的行为任务的依赖方式任务执行常见的任务&#xff08;*&#xff09;项目报告相关任务调试相关选项性能选项守护进程选项日志选项其它(*) 任务定义方式任务类型任务的执行顺序动态分配任务任务的关闭与开启任务的超时任务的查找任务的规则任务的 onlyI…

【RabbitMQ】常用消息模型详解

文章目录 AMQP协议的回顾RabbitMQ支持的消息模型第一种模型(直连)开发生产者开发消费者生产者、消费者开发优化API参数细节 第二种模型(work quene)开发生产者开发消费者消息自动确认机制 第三种模型(fanout)开发生产者开发消费者 第四种模型(Routing)开发生产者开发消费者 第五…

3.2-Docker Image概述

常用docker命令&#xff1a; 查看docker image有哪些 docker image ls Image的获取方式

docker 安装 minio (单体架构)

文字归档&#xff1a;https://www.yuque.com/u27599042/coding_star/qcsmgom7basm6y64 查询 minio 镜像 docker search minio拉取镜像 docker pull minio/minio创建启动 minio 容器 用户名长度至少为 3&#xff0c;密码长度至少为 8 docker run \ -p 9000:9000 \ -p 9090:909…

51单片机-中断

文章目录 前言 前言 #include <reg52.h> #include <intrins.h>sbit key_s2P3^0; sbit flagP3^7;void delay(unsigned int z){unsigned int x,y;for(xz;x>0;x--)for(y114;y>0;y--); }void int_init(){EA1;EX11;IT11;}void main(){int_init();while(1){if (key…