蓝桥杯2023年第十四届省赛真题-飞机降落

蓝桥杯2023年第十四届省赛真题-飞机降落 - C语言网 (dotcpp.com)

“蓝桥杯前一周才开始写真题,练算法,能赢嘛?会赢的(bushi五条)”


题目描述

N 架飞机准备降落到某个只有一条跑道的机场。其中第 i 架飞机在 Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 Di 个单位时间,即它最早可以于 Ti 时刻开始降落,最晚可以于 Ti + Di 时刻开始降落。降落过程需要 Li个单位时间。一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。

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

输入格式

输入包含多组数据。

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

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

以下 N 行,每行包含三个整数:Ti,Di 和 Li。

输出格式

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

样例输入

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

样例输出

YES
NO


实现思路

一开始我试图用贪心和排序安排每个飞机的起降时间,但是只通过了百分之60。看来不能达到最优。于是又想起了DFS可以考虑全部的情况。那么就用DFS去遍历所有可能的情况,只要找到以一种可以全部迫降的方案就可以输出YES!

实现代码

#include <iostream>
#include <vector>using namespace std;
typedef long long ll;
class plane
{
public:ll s;ll e;ll c;
};
const ll N = 1e3;
vector<plane> a(N);
vector<bool> b(N);
ll n;
ll size;
bool can;void dfs(ll deepth, ll usetime)
{// deepth深度 第几个迫降的飞机// usetime当前的时间if (can)return;if (deepth == size){can = true;return;}for (int i = 1; i <= size; i++){if (b[i] == false && usetime <= (a[i].s + a[i].e)){// 如果当前的时间不能起飞 那么就不起飞b[i] = true;// usetime = max(usetime, a[i].s) + a[i].c;// 每个分支都有不同的usetime// 所以不能用一个usetimedfs(deepth + 1, max(usetime, a[i].s) + a[i].c);if (can){return;}b[i] = false;}}
}void solve()
{cin >> size;can = false;for (ll i = 1; i <= size; i++){b[i] = false;// 每次不同的飞机要记得把状态数组重置cin >> a[i].s >> a[i].e >> a[i].c;}dfs(0, 0);if (can){cout << "YES" << endl;}else{cout << "NO" << endl;}
}int main()
{cin >> n;while (n--){solve();}return 0;
}

实现细节注意 

  1. b状态判断数组在每轮飞机迫降前需要false初始化,别忘了。
  2. 每个DFS分支的usetime是不一样,不能设置一个全局变量一概而论。只需要告诉dfs当前时间即可。

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

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

相关文章

JAVA学习-网络编程.Java11标准化的HTTP Client

Java 11引入了标准化的HTTP Client&#xff0c;它提供了一种现代化、灵活且易于使用的方式来进行HTTP通信。下面是关于Java 11标准化的HTTP Client的概述以及与其他比较和高级应用的说明&#xff1a; 1. 概述&#xff1a; Java 11标准化的HTTP Client是一种替代HttpURLConnect…

git:开发中可能遇到的问题:拉取远程分支相关(有远程仓库但是没有远程分支或者fatal: bad revision ‘origin/master‘)

远程分支相关 有远程仓库但是没有远程分支&#xff08;git fetch&#xff09; shanshanEVYSHAN-MC0 bk_template_ieod % git remote -v origin gitxxxx.git (fetch) origi…

软考 - 系统架构设计师 - 软件逆向工程

概念 软件逆向工程&#xff0c;又称软件反向工程&#xff0c;是指从可运行的程序系统出发&#xff0c;运用解密、反汇编、系统分析、程序理解等多种计算机技术&#xff0c;对软件的结构、流程、算法、代码等进行逆向拆解和分析&#xff0c;推导出软件产品的源代码、设计原理、结…

零基础入门转录组数据分析——绘制差异火山图

零基础入门转录组数据分析——绘制差异火山图 差异分析的火山图(Volcano Plot)在生物信息学数据分析中,特别是在基因表达差异分析中,是一个非常直观和有用的工具。 本教程将从导入的数据结构开始,一步步带大家在R中绘制好看的火山图,最后对火山图进行解读,确保读者理解…

数字范围按位与

题目链接 数字范围按位与 题目描述 注意点 0 < left < right < 2^31 - 1包含 left 、right 端点 解答思路 返回区间内所有数字按位与的结果&#xff0c;所以区间内所有数字在某一位的值相同&#xff0c;则结果该位数字为该值&#xff0c;否则该位数字为0&#xf…

二、Java语法基础

1、Java语言的关键字、标识符及命名规范 1)java关键字 2)标识符 3)JAVA中的命名规范 包名的命名规范:域名.公司名称.项目名称.模块名称 类的命名规范:首字母大写,第二个单词的首字母大写,以此类推。 2、进制间的转换(二进制、十进制) 1)十进制->二进制 采用…

火狐浏览器垂直标签页对比 Sidebery vs Tab Center Reborn

Sidebery 链接 商店 评价 大而全&#xff0c;各种功能&#xff0c;以及相关的配置项&#xff0c;应有尽有&#xff1b;功能包括但不限于&#xff1a; 树形标签页、着色、面板、容器、快照最近关闭、标签页、历史 默认的配置就已经很好用了&#xff1b; 快捷键&#xff1a;F…

apollo7.0版本环境搭建

根据文档《 Pre-requisite Software Installation Guide》要求&#xff0c;大体安装步骤如下 Installing Ubuntu LinuxInstalling NVIDIA GPU DriverInstalling Docker EngineInstalling NVIDIA Container Toolkit Installing Ubuntu Linux 安装 ubuntu 18.04 分区 boot&am…

2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年安全员-C证证模拟考试题库及安全员-C证理论考试试题是由安全生产模拟考试一点通提供&#xff0c;安全员-C证证模拟考试题库是根据安全员-C证最新版教材&#xff0c;安全员-C证大纲整理而成&#xff08;含2024年…

TSINGSEE青犀多模型、算力调度与智能分析AI算法中台介绍及应用

TSINGSEE青犀AI算法中台是一款平台型产品&#xff0c;专注于提供各行业中小场景中部署解决方案。平台具备接入广、性能强、支持跨平台、芯片国产化等特点&#xff0c;可提供丰富的视图接入能力和智能分析能力。平台将不同类型、不同协议前端设备&#xff0c;支持通过不同网络环…

JAVA面试大全之开发框架和中间件篇

目录 1、Spring 1.1、什么是Spring框架? 1.2、列举一些重要的Spring模块? 1.3、什么是IOC? 如何实现的? 1.4、什么是AOP? 有哪些AOP的概念?

css简单动画实现

html源码 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>西安工程大学</title><link …

N9010A安捷伦N9010A信号分析仪

181/2461/8938产品概述&#xff1a; Keysight N9010A EXA 信号分析仪是最大限度提高生产线吞吐量的最快方法。从测量速度到代码兼容性&#xff0c;它让每一毫秒都很重要&#xff0c;并帮助您降低总体测试成本。 我们无法预测未来&#xff0c;但安捷伦可以利用我们面向未来的测…

深入探讨Docker in Docker:原理与实战指南

在软件开发和部署中&#xff0c;容器化技术已经成为一个不可或缺的工具。而在使用Docker进行容器化时&#xff0c;有时可能会遇到需要在一个Docker容器中运行另一个Docker容器的情况&#xff0c;这就是所谓的"Docker in Docker"&#xff08;简称DinD&#xff09;。本…

分治法课堂案例(1-8未完,只有1-5,待续)

一个不知名大学生&#xff0c;江湖人称菜狗 original author: Jacky Li Email : 3435673055qq.com Time of completion&#xff1a;2024.03.30 Last edited: 2024.03.30 目录 分治法课堂案例 第1关&#xff1a;二分搜索技术 任务描述 编程要求 测试说明 代码如下&#xf…

【大数据】Flink学习笔记

文章目录 认识FlinkDocker安装Flink基本概念Flink的特点Flink 和 Spark Streaming 对比 基本使用WordCount实现依赖 批模式代码流模式代码网络流模式代码在web UI上提交代码创建项目[^1]编写代码配置打包在Web UI上提交 Flink 架构系统架构核心概念并行度算子链(Opeartor Chain…

一次性了解C语言中文件和文件操作

P. S.&#xff1a;以下代码均在VS2019环境下测试&#xff0c;不代表所有编译器均可通过。 P. S.&#xff1a;测试代码均未展示头文件stdio.h的声明&#xff0c;使用时请自行添加。 文件及文件操作 前言1. 文件分类1.1 文本文件1.2 二进制文件1.3 文本文件和二进制文件的区别 2…

基于哈希槽的docker三主三从redis集群配置

目录 一、三主三从redis集群配置 1、关闭防火墙启动docker后台服务 2、新建6个docker容器redis实例 3、进入容器redis-node-1为6台机器构建集群关系 3.1进入容器 3.2构建主从关系 4、查看集群状态 4.1链接进入6381作为切入点 二、主从容错切换迁移按例 1、数据读写存储…

Shell脚本基础 以及 变量和引用

目录 Shell脚本基础 Shell的基本元素 Shell脚本规范 Shell脚本编写方式 交互式执行 作为程序文件执行 Shell脚本执行方式 bash for_test.sh sh for_test.sh ./for_test.sh source for_test.sh Shell退出状态 变量和引用 什么是变量 变量的命名 变量的作用范围 …