[蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)
[蓝桥杯 2023 省 B] 飞机降落
题目描述
N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di 个单位时间,即它最早可以于 T i T_{i} Ti 时刻开始降落,最晩可以于 T i + D i T_{i}+D_{i} Ti+Di 时刻开始降落。降落过程需要 L i L_{i} Li 个单位时间。
一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。
请你判断 N N N 架飞机是否可以全部安全降落。
输入格式
输入包含多组数据。
第一行包含一个整数 T T T,代表测试数据的组数。
对于每组数据,第一行包含一个整数 N N N。
以下 N N N 行,每行包含三个整数 T i , D i , L i T_{i},D_{i},L_{i} Ti,Di,Li。
输出格式
对于每组数据,输出 YES 或者 NO,代表是否可以全部安全降落。
输入输出样例 #1
输入 #1
2
3
0 100 10
10 10 10
0 2 20
3
0 10 20
10 10 20
20 10 20
输出 #1
YES
NO
说明/提示
【样例说明】
对于第一组数据,可以安排第 3 架飞机于 0 时刻开始降落,20 时刻完成降落。安排第 2 架飞机于 20 时刻开始降落,30 时刻完成降落。安排第 1 架飞机于 30 时刻开始降落,40 时刻完成降落。
对于第二组数据,无论如何安排,都会有飞机不能及时降落。
【评测用例规模与约定】
对于 30 % 30 \% 30% 的数据, N ≤ 2 N \leq 2 N≤2。
对于 100 % 100 \% 100% 的数据, 1 ≤ T ≤ 10 1 \leq T \leq 10 1≤T≤10, 1 ≤ N ≤ 10 1 \leq N \leq 10 1≤N≤10, 0 ≤ T i , D i , L i ≤ 1 0 5 0 \leq T_{i},D_{i},L_{i} \leq 10^{5} 0≤Ti,Di,Li≤105。
蓝桥杯 2023 省赛 B 组 D 题。
分析
这个题数据量不大,直接暴搜,把每种飞机降落的顺序都试一遍,有成功的就YES,都不行就NO
尝试每一种顺序的时候,如果当前时间time已经超过该飞机的最晚降落时间D[i]了,那么它就降落不了了,当前顺序就不行,直接跳出来试下一种方案;
如果当前时间还不到飞机的最早到达时间T[[i],那就等到飞机到达的时间,所以在当前飞机降落前,time=max(T[i], time),即让时间同步到飞机可以开始降落的时间
如果飞机可以顺利降落(当前时间time不晚于飞机的最晚降落时间D[i]),那就将当前时间加上降落所需时间L[i],再去尝让下一架飞机降落
都降落完了,说明当前方案就可以,直接跳出来输出YES就行了
如果遍历完了所有的降落顺序,都不能让所有飞机降落,那就说明是NO
至于如何得到所有的降落顺序,可以用dfs,不过本蒟蒻选择用枚举全排列(其实是不会dfs )next_permutation(start,end)函数
next_permutation()
函数作用
- 字典序生成
next_permutation()会将当前序列按字典序调整为下一个更大的排列。例如,序列 {1,2,3} 的下一个排列是 {1,3,2}。若当前序列已是字典序最大的排列(如 {3,2,1}),则函数返回 false 并将序列重置为最小排列。
基本用法
- 函数原型与参数
#include <algorithm> // 必须包含的头文件template <class BidirectionalIterator>
bool next_permutation(BidirectionalIterator first, BidirectionalIterator last//, Compare comp // 可选:自定义比较函数
);
参数:
- first / last:定义序列范围的迭代器(左闭右开区间 [first, last))。
- comp(可选):自定义比较函数,用于非默认排序规则(如降序)。
- 使用示例
#include <iostream>
#include <algorithm>
#include <vector>int main() {std::vector<int> nums = {1, 2, 3};do {for (int num : nums) std::cout << num << " ";std::cout << "\n";} while (std::next_permutation(nums.begin(), nums.end()));return 0;
}
输出:
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
所以我们可以利用next_permutation()函数生成飞机降落的所有顺序(飞机按0,…,n-1编号,当然从1到n也行),然后依次尝试即可
代码
#include<iostream>
#include <algorithm>
using namespace std;
int t, n;
int num[20];//存储飞机降落的顺序
int T[20], d[20], l[20];
int flag = 0;
int main() {cin >> t;for (int i = 0; i < t; i++) {flag = 0;cin >> n;for (int j = 0; j < n; j++)num[j] = j;for (int j = 0; j < n; j++) {cin >> T[j] >> d[j] >> l[j];d[j] += T[j];//存储最晚降落时间}do {int time = 0;int j = 0;for (j = 0; j < n; j++) {//当前要降落的飞机是num[j]time = max(time, T[num[j]]);//当前飞机降落时间if (time > d[num[j]]) {//超出当前飞机降落时间time = 0;break;//其他飞机不用试了,当前方案不行}else {//当前飞机可以降落time += l[num[j]];}}if (j == n) {//n架飞机都可以降落flag = 1;break;//当前降落方案可以}} while (next_permutation(num, num + n));//所有的降落方案if (flag)cout << "YES" << endl;elsecout << "NO" << endl;}return 0;
}

顺利AC
相关文章:
[蓝桥杯 2023 省 B] 飞机降落(不会dfs的看过来)
[蓝桥杯 2023 省 B] 飞机降落 题目描述 N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di 个单位时间,即它最早可以于 T i T_{i} Ti 时刻…...
信创系统极速文件查找:locate 命令详解
原文链接:信创系统极速文件查找:locate 命令详解 Hello,大家好啊!今天给大家带来一篇信创终端操作系统上 locate 命令详解的文章。在 Linux 及信创终端操作系统(如 统信 UOS、麒麟 KOS)中,查找…...
C# | 超简单CSV表格读写操作(轻松将数据保存到CSV,并支持读取还原)
C# | 超简单CSV表格读写操作(轻松将数据保存到CSV,并支持读取还原) 文章目录 C# | 超简单CSV表格读写操作(轻松将数据保存到CSV,并支持读取还原)一、上位机开发中的CSV应用背景二、CSV读写实战教学1. 基本对…...
PostgreSQL:语言基础与数据库操作
🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,精通Java编…...
RK3568 Android11 sh366006驱动
sh366006.c /* 谁愿压抑心中怒愤冲动咒骂这虚与伪与假从没信要屈膝面对生命纵没有别人帮一生只靠我双手让我放声疯狂叫囔今天的他 呼风可改雨不可一世太嚣张 --《不可一世》Beyond */ #include <linux/module.h> #include <linux/init.h> #include <linux/fs.h…...
蓝桥杯学习——二叉树+奇点杯题目解析
基础认知 一、二叉树种类: 1.满二叉树。记深度k,节点数量2^k-1。 2.完全二叉树:除了底层,其余全满,底部从左到右连续。 3,平衡二叉搜索树:左子树和右子树高度差不大于1。 二、存储方式&…...
基于django+vue的购物商城系统
开发语言:Python框架:djangoPython版本:python3.8数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 系统首页 热卖商品 优惠资讯 个人中心 后台登录 管理员功能界面 用户管理 商品分类管理…...
AI安全、大模型安全研究(DeepSeek)
DeepSeek 点燃AI应用革命之火,但安全 “灰犀牛” 正在逼近 DeepSeek-R1国产大模型的发布,以技术创新惊艳了全球,更是极致的性价比推动国内千行百业接入 AI,政府、企业竞速开发智能业务处理、智能客服、代码生成、营销文案等应用,“落地效率” 成为第一关键词。然而与此相…...
卷积神经网络 - 汇聚层
卷积神经网络一般由卷积层、汇聚层和全连接层构成,本文我们来学习汇聚层。 汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer),其作用是进 行特征选择,降低特征数量,从而减少参数数量。 卷积层虽然可以显著减少网络中连接的…...
蓝桥杯备赛-贪心-管道
问题描述 有一根长度为 lenlen 的横向的管道,该管道按照单位长度分为 lenlen 段,每一段的中央有一个可开关的阀门和一个检测水流的传感器。 一开始管道是空的,位于 LiLi 的阀门会在 SiSi 时刻打开,并不断让水流入管道。 对…...
论文分享:PL-ALF框架实现无人机低纹理环境自主飞行
在室内仓库、地下隧道等低纹理复杂场景中,无人机依赖视觉传感器进行自主飞行时,往往会遇到定位精度低、路径规划不稳定等难题。针对这一问题,重庆邮电大学计算机学院雷大江教授团队在IEEE Trans期刊上提出了一种新型自主飞行框架:…...
Nodejs使用redis
框架:koa,通过koa-generator创建 redis: 本地搭建,使用默认帐号,安装说明地址以及默认启动设置:https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/install-redis-on-linux/ 中间件&#x…...
GitHub 超火的开源终端工具——Warp
Warp 作为近年来 GitHub 上备受瞩目的开源终端工具,以其智能化、高性能和协作能力重新定义了命令行操作体验。以下从多个维度深入解析其核心特性、技术架构、用户评价及生态影响力: 一、背景与核心团队 Warp 由前 GitHub CTO Jason Warner 和 Google 前…...
计算机视觉技术探索:美颜SDK如何利用深度学习优化美颜、滤镜功能?
时下,计算机视觉深度学习正在重塑美颜技术,通过智能人脸检测、AI滤镜、深度美肤、实时优化等方式,让美颜效果更加自然、精准、个性化。 那么,美颜SDK如何结合深度学习来优化美颜和滤镜功能?本文将深入解析AI在美颜技术…...
应用商店上新:Couchbase Enterprise Server集群
可移植的冗余数据平台,这往往是创建可扩展的云原生应用程序的先决条件。而不依赖特定平台的工具可用于为多云、多区域工作负载提供企业级应用所需的灵活性。 Couchbase是一种高性能NoSQL数据库,专为当今复杂的云生态系统所需的动态扩展能力而设计。最近…...
Redis解决缓存击穿问题——两种方法
目录 引言 解决办法 互斥锁(强一致,性能差) 逻辑过期(高可用,性能优) 设计逻辑过期时间 引言 缓存击穿:给某一个key设置了过期时间,当key过期的时候,恰好这个时间点对…...
前端 Blob 详解
前端 Blob 详解 1. 什么是 Blob? Blob(Binary Large Object)表示二进制大对象,用于存储二进制数据。在前端开发中,Blob 常用于处理文件、图像、视频等二进制数据。 2. 创建 Blob 可以通过 Blob 构造函数创建 Blob …...
Debezium + Kafka-connect 实现Postgres实时同步Hologres
基于 Debezium Kafka 的方案实现 PostgreSQL 到 Hologres 的实时数据同步,是一种高可靠性、高扩展性的解决方案。以下是详细的实现步骤: 1. 方案架构 Debezium:捕获 PostgreSQL 的变更数据(CDC),并将变更…...
JavaScript性能优化的12种方式
当涉及到JavaScript性能优化时,有几个关键的方面需要考虑。下面是一些常见的JavaScript性能优化技巧和实践: 减少DOM操作: 频繁的DOM操作会导致重绘和重新布局,影响性能。建议将多个DOM操作合并为一个操作,或者使用Do…...
在Ubuntu上安装MEAN Stack的4个步骤
在Ubuntu上安装MEAN Stack的4个步骤为:1.安装MEAN;2.安装MongoDB;3.安装NodeJS,Git和NPM;4.安装剩余的依赖项。 什么是MEAN Stack? 平均堆栈一直在很大程度上升高为基于稳健的基于JavaScript的开发堆栈。…...
集成学习之随机森林
目录 一、集成学习的含义 二、集成学习的代表 三、集成学习的应用 1、分类问题集成。(基学习器是分类模型) 2、回归问题集成。(基学习器是回归模型) 3、特征选取集成。 四、Bagging之随机森林 1、随机森林是有多个决策树&a…...
在线JSON格式校验工具站
在线JSON校验格式化工具(Be JSON)在线,JSON,JSON 校验,格式化,xml转json 工具,在线工具,json视图,可视化,程序,服务器,域名注册,正则表达式,测试,在线json格式化工具,json 格式化,json格式化工具,json字符串格式化,json 在线查看器,json在线,json 在线验…...
SAP的WPS导出找不到路径怎么办;上载报错怎么办
一.打开注册编辑器 二.输入以下地址 计算机\HKEY_CLASSES_ROOT\ExcelWorksheet\Protocol\StdFileEditing\Server 去除掉EXE后面的命令即可 二:WPS上载文件没反应怎么办 如何切换整合模式或多组件模式-WPS学堂 根据官方操作把整合模式改成多组件模式...
Moonlight-16B-A3B: 变革性的高效大语言模型,凭借Muon优化器打破训练效率极限
近日,由Moonshot AI团队推出的Moonlight-16B-A3B模型,再次在AI领域引发了广泛关注。这款全新的Mixture-of-Experts (MoE)架构的大型语言模型,凭借其创新的训练优化技术,特别是Muon优化器的使用,成功突破了训练效率的极…...
rust学习笔记17-异常处理
今天聊聊rust中异常错误处理 1. 基础类型:Result 和 Option,之前判断空指针就用到过 Option<T> 用途:表示值可能存在(Some(T))或不存在(None),适用于无需错误信息的场景。 f…...
PyTorch系列教程:使用预训练语言模型增强文本分类
文本分类仍是自然语言处理(NLP)领域的一项基础任务,其目标是将文本数据归入预先设定的类别之中。预训练语言模型的出现极大地提升了这一领域的性能。本文将探讨如何利用 PyTorch 来利用这些模型,展示它们如何能增强文本分类任务。…...
LabVIEW 线性拟合
该 LabVIEW 程序实现了 线性拟合(Linear Fit),用于计算给定一组数据点的斜率(Slope)和截距(Intercept),并将结果可视化于 XY Graph 中。本案例适用于数据拟合、实验数据分析、传感器…...
nacos安装,服务注册,服务发现,远程调用3个方法
安装 点版本下载页面 服务注册 每个微服务都配置nacos的地址,都要知道 服务发现 2个是知道了解 远程调用基本实现 远程调用方法2,负载均衡API测试 远程调用方法3,注解 负载均衡的远程调用, 总结 面试题...
k8s主要控制器简述(一)ReplicaSet与Deployment
目录 一、ReplicaSet 关键特性 示例 解释 支持的 Operator 二、Deployment 1. 声明式更新 示例 2. 滚动更新 示例 3. 回滚 示例 4. ReplicaSet 管理 示例 5. 自动恢复 示例 6. 扩展和缩容 示例 示例 一、ReplicaSet ReplicaSet 是 Kubernetes 中的一个核心控…...
Java中的消息中间件对比与解析:RocketMQ vs RabbitMQ
消息中间件(Message Queue, MQ)是分布式系统中实现异步通信、解耦服务和流量削峰的关键组件。在Java生态中,RocketMQ和RabbitMQ是两个广泛应用的消息队列系统,但它们在设计理念、功能特性和适用场景上存在显著差异。本文将从核心功…...
