第十四届蓝桥杯省赛C++B组D题【飞机降落】题解(AC)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路

这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列,我们可以使用深度优先搜索(DFS)的方法,尝试所有可能的降落顺序。

首先,我们需要理解题目中的条件。每架飞机在 T i T_i Ti 时刻到达机场上空,剩余油料可以维持 D i D_i Di 个单位时间,降落需要 L i L_i Li 个单位时间。这意味着每架飞机可以在 T i T_i Ti T i + D i T_i+D_i Ti+Di 的时间段内开始降落。

然后,我们可以按照以下步骤来实现 DFS:

  1. 首先,我们初始化一个布尔数组 st[] 来记录每架飞机是否已经降落。
  2. 然后,我们对每架飞机尝试进行降落。这里的 “尝试” 意味着我们需要检查该飞机是否可以在当前的时间内开始降落,即它的开始降落时间是否在 T i T_i Ti T i + D i T_i+D_i Ti+Di 的时间段内。如果可以,我们就让它降落,并把 st[i] 设置为 true
  3. 在一架飞机降落之后,我们递归地对剩下的飞机进行尝试。这一步就是 DFS 的主要部分,我们需要在所有的可能的降落序列中进行搜索。
  4. 如果在某一步我们发现当前的飞机无法在当前的时间内开始降落,我们就返回 false,并在上一层中尝试下一架飞机。
  5. 如果所有的飞机都已经降落,我们就返回 true
  6. 最后,我们对所有飞机进行尝试。如果存在至少一个可以让所有飞机都降落的序列,我们就输出 YES,否则输出 NO

通过以上步骤,我们可以找出是否存在一个合法的降落序列,使得所有的飞机都能在它们的油料耗尽之前降落。

AC_Code

  • C++
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 15;int n;
int a[N], b[N], c[N];
bool st[N];bool dfs(int u, int last, int cnt)
{if (b[u] < last)return false;if (cnt == n)return true;for (int i = 0; i < n; ++ i )if (!st[i]){st[i] = true;if (dfs(i, max(a[u], last) + c[u], cnt + 1))return true;st[i] = false;}return false;
}int main()
{int T;cin >> T;while (T -- ){memset(st, 0, sizeof st);cin >> n;for (int i = 0; i < n; ++ i )cin >> a[i] >> b[i] >> c[i], b[i] += a[i];bool flag = false;for (int i = 0; i < n; ++ i ){st[i] = true;if (dfs(i, 0, 1)){flag = true;break;}st[i] = false;}cout << (flag? "YES": "NO") << endl;}return 0;
}
  • Java
import java.util.*;public class Main {static final int N = 15;static int n;static int[] a = new int[N], b = new int[N], c = new int[N];static boolean[] st = new boolean[N];static boolean dfs(int u, int last, int cnt) {if (b[u] < last) {return false;}if (cnt == n) {return true;}for (int i = 0; i < n; ++i) {if (!st[i]) {st[i] = true;if (dfs(i, Math.max(a[u], last) + c[u], cnt + 1)) {return true;}st[i] = false;}}return false;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int T = scanner.nextInt();while (T-- > 0) {Arrays.fill(st, false);n = scanner.nextInt();for (int i = 0; i < n; ++i) {a[i] = scanner.nextInt();b[i] = scanner.nextInt() + a[i];c[i] = scanner.nextInt();}boolean flag = false;for (int i = 0; i < n; ++i) {st[i] = true;if (dfs(i, 0, 1)) {flag = true;break;}st[i] = false;}System.out.println(flag ? "YES" : "NO");}scanner.close();}
}
  • Python
N = 15
a, b, c = [0]*N, [0]*N, [0]*N
st = [False]*Ndef dfs(u, last, cnt):if b[u] < last:return Falseif cnt == n:return Truefor i in range(n):if not st[i]:st[i] = Trueif dfs(i, max(a[u], last) + c[u], cnt + 1):return Truest[i] = Falsereturn FalseT = int(input().strip())
for _ in range(T):st = [False]*Nn = int(input().strip())for i in range(n):a[i], b[i], c[i] = map(int, input().strip().split())b[i] += a[i]flag = Falsefor i in range(n):st[i] = Trueif dfs(i, 0, 1):flag = Truebreakst[i] = Falseprint("YES" if flag else "NO")

【在线测评】

在这里插入图片描述

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

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

相关文章

【MotionCap】pycharm 远程在wsl2 ubuntu20.04中root的miniconda3环境

pycharm wsl2 链接到pycharmsbin 都能看到内容,/root 下内容赋予了zhangbin 所有,pycharm还是看不到/root 下内容。sudo 安装了miniconda3 引发了这些问题 由于是在 root 用户安装的miniconda3 所以安装路径在/root/miniconda3 里 这导致了环境也是root用户的,会触发告警 WA…

冲击试样缺口拉刀V2U2U3U5

拉刀性能介绍 冲击试样缺口拉刀采用进口高速工具钢W18Cr4V材质&#xff0c;特殊工艺精密加工制造&#xff0c;硬度高&#xff0c;耐磨性好&#xff0c;使用寿命长&#xff0c;每把拉刀可加工试样达20&#xff0c;000多个。拉刀共54个齿&#xff08;深度5mm缺口拉刀为74个齿&am…

抖音本地生活服务商条件太高怎么办?低门槛方法来了!

随着本地生活赛道的潜力不断显现&#xff0c;本地生活服务商的数量也在与日俱增。而在所有开通本地生活服务板块的互联网平台中&#xff0c;日活跃用户数约8亿的抖音往往是众多创业者优先考虑的对象&#xff0c;以抖音本地生活服务商如何申请为代表的相关问题也因此常出现在多个…

排序算法(1)之插入排序----直接插入排序和希尔排序

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 排序之插入排序----直接插入排序和希尔排序(1) 收录于专栏【数据结构初阶】 本专栏旨在分享学习数据结构学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨…

页面加载503 Service Temporarily Unavailable异常

最近发现网页刷新经常503&#xff0c;加载卡主&#xff0c;刷新页面就正常了。 研究之后发现是页面需要的js文件等加载失败了。 再研究之后发现是nginx配置的问题。 我之前为了解决一个漏洞检测到目标主机可能存在缓慢的HTTP拒绝服务攻击 把nginx的连接设置了很多限制&#…

PHP传奇游戏推广信息发布站程序源码带会员发布

这是一个游戏导航网站程序。可以做任何一款游戏的推广发布&#xff0c;会员注册发布&#xff0c;后台审核通过&#xff0c;前台就可以展示&#xff0c;非常不错的游戏发布平台

一个项目学习Vue3---响应式基础

观察下面一段代码&#xff0c;学习响应式基础的全部内容 <template><div><div>将下面的msg属性放到上面来:{{ msg }}</div><button click"count">{{ count }}</button><button click"object.count.value">{{ o…

【Carsim】Carsim2019与Matlab2015b联合仿真测试

&#x1f60f;★,:.☆(&#xffe3;▽&#xffe3;)/$:.★ &#x1f60f; 这篇文章主要介绍Carsim2019与Matlab2015b联合仿真测试。 学其所用&#xff0c;用其所学。——梁启超 欢迎来到我的博客&#xff0c;一起学习&#xff0c;共同进步。 喜欢的朋友可以关注一下&#xff0c…

python-糖果俱乐部(赛氪OJ)

[题目描述] 为了庆祝“华为杯”的举办&#xff0c;校园中开展了许多有趣的热身小活动。小理听到这个消息非常激动&#xff0c;他赶忙去参加了糖果俱乐部的活动。 该活动的规则是这样的&#xff1a;摊位上有 n 堆糖果&#xff0c;第 i 堆糖果有 ai​ 个&#xff0c;参与的同学可…

面向工业化的多类电子元件自动计数系统测试报告

目录 1、项目描述 2、登录注册测试 2、主界面测试 2.1、在线计数测试 2.2、离线计数测试 2.3、浏览数据测试 1、项目描述 该系统利用机器视觉平台采集电子元件图像&#xff0c;设计并实现了适应不同形态分布的电子元件计数模型&#xff0c;能够快速且准确地进行计数和分类&…

昇思25天学习打卡营第九天|使用静态图加速

背景 提供免费算力支持&#xff0c;有交流群有值班教师答疑的华为昇思训练营进入第九天了。 今天是第九天&#xff0c;前八天的学习内容可以看链接 昇思25天学习打卡营第一天|快速入门 昇思25天学习打卡营第二天|张量 Tensor 昇思25天学习打卡营第三天|数据集Dataset 昇思25天…

高效的向量搜索算法——分层可导航小世界图(HNSW)

最近在接触大模型相关内容&#xff0c;发现一种高效的向量搜索算法HNSW&#xff0c;这里做一下记录。 在之前自己也接触过一段时间的复杂网络&#xff08;网络科学&#xff09;&#xff0c;没想到&#xff0c;将网络科学的思想引入到向量搜索算法中&#xff0c;可以产生令人眼前…

如何实现公网环境远程连接本地局域网宝塔FTP服务远程管理文件

文章目录 前言1. Linux安装Cpolar2. 创建FTP公网地址3. 宝塔FTP服务设置4. FTP服务远程连接小结 5. 固定FTP公网地址6. 固定FTP地址连接 &#x1f4a1;推荐 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。…

Python28-5 k-means算法

k-means 算法介绍 k-means 算法是一种经典的聚类算法&#xff0c;其目的是将数据集分成 ( k ) 个不同的簇&#xff0c;每个簇内的数据点尽可能接近。算法的基本思想是通过反复迭代优化簇中心的位置&#xff0c;使得每个簇内的点与簇中心的距离之和最小。k-means 算法的具体步骤…

S7-1500轴工艺对象105报文安装(硬件目录的支持包 HSP)

S7-1500PLC里硬件组态没法组态到105报文是因为对应的HSP文件没有安装&#xff0c;首先需要安装对应的HSP文件。 1、HSP文件安装 V19版本的HSP安装链接如下 https://download.csdn.net/download/m0_46143730/89503735 2、安装HSP文件 3、需要将博途软件关闭才能完成安装 4、拖…

猫头虎博主全栈前沿AI技术领域矩阵社群

猫头虎博主全栈前沿AI技术领域矩阵社群 &#x1f44b;大家好&#xff0c;我是猫头虎&#xff01;今天我要向大家介绍一个非常重要的社群矩阵——专为全栈前沿AI技术领域的朋友们打造的各种技术交流和资源互助的社群。这些社群不仅能帮助大家快速提升技术水平&#xff0c;还能拓…

【MySQL备份】Percona XtraBackup全量备份实战篇

目录 1. 前言 2.准备工作 2.1.环境信息 2.2.创建备份目录 2.3.配置/etc/my.cnf文件 2.4.授予root用户BACKUP_ADMIN权限 3.全量备份 4.准备备份 5.数据恢复 6.总结 "实战演练&#xff1a;利用Percona XtraBackup执行MySQL全量备份操作详解" 1. 前言 本文…

Java服务器代码远程调试(IDEA版)

Java服务器代码远程调试 配置启动脚本参数配置IDEA远程调试工具操作步骤 注意&#xff1a;远程调试的代码需要与本地代码一致&#xff0c;远程调试目的是解决本地环境无法支持调试的情况下&#xff0c;解决线上&#xff08;测试&#xff09;环境调试问题。 配置启动脚本参数 n…

如何压缩视频大小,怎么压缩视频

在数字化浪潮中&#xff0c;视频已成为我们生活和工作的重要部分。但视频往往伴随着大文件体积&#xff0c;这给存储和分享带来了不少困扰。本文将为您揭秘好用的压缩视频的方法&#xff0c;帮助您轻松减小视频文件大小&#xff0c;提高分享效率&#xff01; 方法&#xff0c;使…

[图解]SysML和EA建模住宅安全系统-05-参数图

1 00:00:01,140 --> 00:00:03,060 这是实数没错&#xff0c;这是分钟 2 00:00:03,750 --> 00:00:07,490 但是你在这里选&#xff0c;选不了的 3 00:00:07,500 --> 00:00:09,930 因为它这里不能够有那个 4 00:00:11,990 --> 00:00:13,850 但是我们前面这里 5 00…