[蓝桥杯 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 N2

对于 100 % 100 \% 100% 的数据, 1 ≤ T ≤ 10 1 \leq T \leq 10 1T10 1 ≤ N ≤ 10 1 \leq N \leq 10 1N10 0 ≤ T i , D i , L i ≤ 1 0 5 0 \leq T_{i},D_{i},L_{i} \leq 10^{5} 0Ti,Di,Li105

蓝桥杯 2023 省赛 B 组 D 题。

分析

这个题数据量不大,直接暴搜,把每种飞机降落的顺序都试一遍,有成功的就YES,都不行就NO

尝试每一种顺序的时候,如果当前时间time已经超过该飞机的最晚降落时间D[i]了,那么它就降落不了了,当前顺序就不行,直接跳出来试下一种方案;

如果当前时间还不到飞机的最早到达时间T[[i],那就等到飞机到达的时间,所以在当前飞机降落前,time=max(T[i], time),即让时间同步到飞机可以开始降落的时间

如果飞机可以顺利降落(当前时间time不晚于飞机的最晚降落时间D[i]),那就将当前时间加上降落所需时间L[i],再去尝让下一架飞机降落

都降落完了,说明当前方案就可以,直接跳出来输出YES就行了

如果遍历完了所有的降落顺序,都不能让所有飞机降落,那就说明是NO

至于如何得到所有的降落顺序,可以用dfs,不过本蒟蒻选择用枚举全排列(其实是不会dfsnext_permutation(start,end)函数

next_permutation()

函数作用

  • ​字典序生成
    next_permutation()会将当前序列按字典序调整为下一个更大的排列。例如,序列 {1,2,3} 的下一个排列是 {1,3,2}。若当前序列已是字典序最大的排列(如 {3,2,1}),则函数返回 false 并将序列重置为最小排列。

基本用法

  1. 函数原型与参数
#include <algorithm>  // 必须包含的头文件template <class BidirectionalIterator>
bool next_permutation(BidirectionalIterator first, BidirectionalIterator last//, Compare comp  // 可选:自定义比较函数
);

​参数:

  • first / last:定义序列范围的迭代器(左闭右开区间 [first, last))。
  • comp(可选):自定义比较函数,用于非默认排序规则(如降序)。
  1. 使用示例
#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

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

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

相关文章

英伟达GTC 2025大会产品全景剖析与未来路线深度洞察分析

【完整版】3月19日&#xff0c;黄仁勋Nvidia GTC 2025 主题演讲&#xff5c;英伟达 英伟达GTC 2025大会产品全景剖析与未来路线深度洞察分析 一、引言 1.1 分析内容 本研究主要采用了文献研究法、数据分析以及专家观点引用相结合的方法。在文献研究方面&#xff0c;广泛收集了…

强化学习 - PPO控制无人机

PPO&#xff08;Proximal Policy Optimization&#xff0c;近端策略优化&#xff09;是一种强化学习算法&#xff0c;用于训练智能体&#xff08;无人机&#xff09;如何在环境中做出决策。它本质上是 策略梯度&#xff08;Policy Gradient&#xff09;方法 的一种改进&#xf…

YOLO11报错:AttributeError: module ‘torch‘ has no attribute ‘OutOfMemoryError‘

事情是这样的&#xff1a;前几天YOLO11的代码还是可以训练的&#xff0c;昨天训练了一天&#xff0c;今天换模型就报这个错。 AttributeError: module torch has no attribute OutOfMemoryError我查了一下&#xff1a;YOLO11官方代码issues里面也有人有同样的问题&#xff0c;…

Prometheus使用

介绍&#xff1a;Prometheus 是一个开源的 监控与告警系统&#xff0c;主要用于采集和存储时间序列数据&#xff08;Time Series Data&#xff09; Prometheus的自定义查询语言PromQL Metric类型 为了能够帮助用户理解和区分这些不同监控指标之间的差异&#xff0c;Prometheu…

ESG报告评级标准解读

ESG&#xff08;环境、社会、治理&#xff09;报告评级标准用于评估企业在环境、社会和公司治理方面的表现。以下是主要评级标准的解读&#xff1a; 1. 环境&#xff08;Environmental&#xff09; 碳排放&#xff1a;评估企业的温室气体排放及减排措施。 能源使用&#xff1…

清晰易懂的 PHP 安装与配置教程

初学者也能看懂的 PHP 安装与配置教程 本教程将手把手教你如何在 Windows 系统上安装 PHP&#xff0c;并配置 Composer&#xff08;PHP 的依赖管理工具&#xff09;的缓存位置&#xff0c;即使你是零基础小白&#xff0c;也能轻松完成&#xff01; 一、准备工作 操作系统&…

Zabbix监控自动化(Zabbix Mnitoring Automation)

​​​​​​zabbix监控自动化 1、自动化监控(网络发现与自动注册只能用其一) 1.1 ansible安装zabbix agent 新采购100台服务器&#xff1a; 1、安装操作系统 2、初始化操作系统 3、安装zabbix agent 1.手动部暑 2.脚本部暑(shell expect) 3.ansible 4、纳入监控 1.…

Android Launcher3 首屏图标锁定技术方案解析

一、需求背景与技术挑战 在Android 13系统定制开发中&#xff0c;需实现Launcher首屏图标固定功能。该需求需在以下技术维度进行突破&#xff1a; 拖拽事件拦截机制&#xff1a;需精准识别拖拽目标区域 布局层级判定&#xff1a;准确识别第一屏的布局标识 跨屏操作限制&…

Spring Framework 中 BeanDefinition 是什么

BeanDefinition 是 Spring Framework 中一个核心的接口&#xff0c;它描述了一个 Bean 的定义。你可以把它看作是 Spring IoC 容器中 Bean 的“蓝图”或“配置元数据”。它包含了 Spring 容器创建、配置和管理 Bean 所需的所有信息。 BeanDefinition 中包含的信息&#xff1a;…

QtCreator16创建WebAssembly工程在浏览器中显示图片

显示效果&#xff1a; 实现过程&#xff1a; 添加qrc资源文件 输入文件名&#xff1a; 选择模板为Qt Resource File 在工程目录下创建res文件夹&#xff0c;复制图片文件到res中 编辑qrc文件 添加资源前缀 添加图片资源 选择图片资源添加别名 复制资源URL 使用别名调用资源 居…

openpnp - 如果安装面的钣金接触面不平,可以尝试加垫片

文章目录 openpnp - 如果安装面的钣金接触面不平&#xff0c;可以尝试加垫片概述吐槽备注END openpnp - 如果安装面的钣金接触面不平&#xff0c;可以尝试加垫片 概述 在X轴导轨上&#xff0c;架上百分表&#xff0c;打设备的工作平面的平面度&#xff0c;发现工作平面不平(和…

人工智能之数学基础:线性方程组

本文重点 线性方程组是由两个或两个以上的线性方程组成的方程组,其中每个方程都是关于两个或两个以上未知数的线性方程。 记忆恢复 我们先从小学学习的线性方程组找到感觉 解答过程: 将第二个方程乘以2,得到: 2x−2y=2 将第一个方程减去新得到的方程,消去x: (2x+y)−…

DeepSeek-R1思路训练多模态大模型-Vision-R1开源及实现方法思路

刚开始琢磨使用DeepSeek-R1风格训练多模态R1模型&#xff0c;就看到这个工作&#xff0c;本文一起看看&#xff0c;供参考。 先提出问题&#xff0c;仅靠 RL 是否足以激励 MLLM 的推理能力&#xff1f; 结论&#xff1a;不能&#xff0c;因为如果 RL 能有效激励推理能力&#…

鸿蒙NEXT项目实战-百得知识库04

代码仓地址&#xff0c;大家记得点个star IbestKnowTeach: 百得知识库基于鸿蒙NEXT稳定版实现的一款企业级开发项目案例。 本案例涉及到多个鸿蒙相关技术知识点&#xff1a; 1、布局 2、配置文件 3、组件的封装和使用 4、路由的使用 5、请求响应拦截器的封装 6、位置服务 7、三…

免密登录远程服务器shell脚本

一、脚本代码 #!/bin/bash #提示用户输入用户i名和ip地址 read -p "请输入远程服务器的用户名: " hname read -p "请输入远程服务器的IP地址: " fip read -p "请输入远程服务器的远程端口:" sdk #检查是否配置了免密登录 function sfmm(){ …

WiFi 定位技术:守护宠物安全的隐形卫士

一、实时追踪&#xff0c;防患未然 想象一下&#xff0c;活泼好动的猫咪趁你开门瞬间溜出家门&#xff0c;穿梭在楼道杂物间&#xff1b;或是狗狗在户外玩耍时&#xff0c;被突发声响惊吓狂奔&#xff0c;瞬间没了踪影。在这些令人揪心的时刻&#xff0c;WiFi 定位技术就像给宠…

《C#上位机开发从门外到门内》3-2::Modbus数据采集系统

文章目录 **1. 项目概述****1.1 项目背景****1.2 项目目标****1.3 技术栈** **2. 系统架构设计****2.1 系统架构图****2.2 模块功能** **3. 数据采集模块实现****3.1 Modbus协议简介****3.2 数据采集流程****3.3 代码实现** **4. 数据存储模块实现****4.1 数据库设计****4.2 数…

Carto 无尽旅图 for Mac v1.0.7.6 (51528)冒险解谜游戏 支持M、Intel芯片

游戏介绍 《Carto》源于英文"Cartographer"&#xff08;制图师&#xff09;&#xff0c;卡朵不慎坠入未知世界。这里蜿蜒曲折&#xff0c;地形丰富。作为制图师卡朵&#xff0c;你将用你自己的神秘力量&#xff0c;操纵地图颠覆世界&#xff0c;将其翻转、拼合。当世…

点击劫持详细透析

点击劫持&#xff08;Clickjacking&#xff09;是一种前端安全攻击手段&#xff0c;攻击者通过视觉欺骗诱导用户在不知情的情况下点击隐藏的页面元素&#xff0c;从而执行非预期的操作。以下是攻击过程的详细说明&#xff1a; 攻击过程步骤 攻击者构造恶意页面 创建一个恶意网页…

OpenAI--Agent SDK简介

项目概述 OpenAI Agents SDK 是一个轻量级但功能强大的框架&#xff0c;用于构建多智能体工作流。它主要利用大语言模型&#xff08;LLM&#xff09;&#xff0c;通过配置智能体、交接、护栏和跟踪等功能&#xff0c;实现复杂的工作流管理。以下是对其各个部分运行过程和代码流…