14届蓝桥杯省赛 C/C++ B组 T4 飞机降落 (DFS)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记录此题提醒自己,此类时间轴问题可以通过DFS解决 DFS不是能解决所有题吗

对于此题,我们将降落的飞机的个数和时间轴作为DFS的形参,这样可以节省手动回溯的过程。

并且在DFS的过程中我们要加入一些贪心策略,否则直接爆搜有可能搜不出来答案。
如果一个飞机的到达时刻加上盘旋时间能够超过或者等于上一架飞机降落后的时间,那么就可以降落。

之后要再进行判断,如果这个飞机的到达时间是超过了上一架飞机降落后的时间的,那么就直接把t[i] + l[i]当作下一层的时间,否则的话,把上一个飞机降落的时间加上当前飞机降落的时间当做下一层的时间。

#include<iostream>
#include<cstring>
using namespace std;
const int N = 15;struct Node {int t;int d;int l;
}a[N];
int flag = 0;
int n;
bool vis[N];void dfs(int u, int time) {if (flag)return;if (u == n) {flag = 1;return;}for (int i = 1; i <= n; i++) {if(!vis[i]){if(a[i].t + a[i].d >= time){vis[i] = 1;if(time > a[i].t)dfs(u+1,time + a[i].l);else dfs(u+1,a[i].t + a[i].l);vis[i] = 0;}}}
}int main() {int t; cin >> t;while (t--) {memset(vis,0,sizeof vis);cin >> n;for (int i = 1; i <= n; i++)cin >> a[i].t >> a[i].d >> a[i].l;dfs(0,0);if (flag)cout << "YES" << endl;else cout << "NO" << endl;flag = 0;}return 0;
}

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

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

相关文章

精酿啤酒:酿造过程中的微生物控制与管理

在啤酒酿造过程中&#xff0c;微生物控制与管理是确保啤酒品质和口感的重要环节。Fendi Club啤酒在酿造过程中&#xff0c;对微生物的控制与管理有着严格的要求和杰出的技艺。 Fendi Club啤酒注重原料的微生物质量。他们了解不同原料中可能存在的微生物种类和数量&#xff0c;并…

安装 windows 版 dash —— zeal

1、下载安装 下载地址&#xff1a;Download Zeal 选择 Protable 版 直接使用 zeal 下载文档比较慢甚至失败&#xff0c;可以设置代理&#xff0c;也可以使用下面两种方式。 2、手动下载 docset 文档后导入 这种方法不能够选择文档的版本 &#xff08;1&#xff09;在 http://…

java/C#语言开发的医疗信息系统11套源码

java/C#语言开发的医疗信息系统11套源码 java医院云HI系统简介&#xff1a; SaaS模式Java版云HIS系统&#xff0c;融合B/S版电子病历系统&#xff0c;支持电子病历四级&#xff0c;云HIS系统是一款满足基层医院各类业务需要的健康云产品。该产品能帮助基层医院完成日常各类业务…

【第二十八篇】BurpSuite保存结果进行二次利用

文章目录 使用场景操作说明本篇讲解如何将BurpSuite爆破所得结果进行二次利用。 使用场景 1、假定某网站特性:无论密码是否正确,都会判断用户名是否存在,如果存在则回显密码错误或直接登录;如果用户名不存在则回显用户不存在。故可通过爆破模块,提取存在的用户名,再进行…

4.8QT

将按钮3&#xff0c;基于qt4版本连接实现点击按钮3&#xff0c;实现关闭窗口。 widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget), btn3(new QPushButton(this)) {ui->s…

React复习全攻略:重温旧知,收获新知

简介 大背景&#xff1a; 起源于 Facebook 的内部项目&#xff0c;因为对市面上所有JS MVC框架不满意&#xff0c;就自己开发了一套&#xff0c;用来开发Instagram项目。&#xff08;开源时间&#xff1a;2013年5月&#xff09; 三句话解释&#xff1a; 是用于构建 Web 和原…

【代码随想录】day37:递增数字,监控二叉树

递增数字 def monotoneIncreasingDigits(self, n):""":type n: int:rtype: int"""# 找到不递增的位置i对应的数字k&#xff0c;前一个数字-1,后面都变为9&#xff0c;# 后序遍历nlist(str(n))for i in range(len(n)-1,0,-1):# 如果不递增if n[i]…

开放式耳机什么牌子的好?五大硬核宝藏品牌收藏备用

入耳式耳机虽然隔音效果好&#xff0c;但长时间佩戴可能会让耳朵感到不适。而且&#xff0c;它过于封闭的听音环境&#xff0c;有时会让人感觉与周围环境脱节。相比之下&#xff0c;开放式耳机则更为通透、自然。它不仅能让你清晰地听到音乐中的每一个细节&#xff0c;还能让你…

arm64 - 系统调用

起因 群里做网络的小伙伴问了一个问题&#xff0c;他在wifi驱动的某个函数里加了dump stack&#xff0c;然后插入驱动&#xff0c;发现调用栈是这样的&#xff0c;为什么呢&#xff1f; 代码追溯 insmod这个app&#xff0c;是在busybox中的&#xff0c;所以找到busybox的代…

spring-cloud微服务负载均衡器ribbon

注意&#xff1a;2020年前SpringCloud是采用Ribbon作为负载均衡实现&#xff0c;但是在2020后采用了LoadBalancer替代&#xff0c;所以要查看springboot&#xff0c;springcloud&#xff0c;sprincloudalibaba的版本链接对应&#xff0c;Ribbon负载均衡都是在springboot版本2.4…

静态中间继电器 HJZ-J908 AC380V 导轨安装 JOSEF约瑟

系列型号&#xff1a; HJZ-J902静态中间继电器&#xff1b;HJZ-J905静态中间继电器&#xff1b; HJZ-J907静态中间继电器&#xff1b;HJZ-J907L静态中间继电器&#xff1b; HJZ-J908静态中间继电器&#xff1b;HJZ-J909静态中间继电器&#xff1b; HJZ-J910静态中间继电器&…

FireProx:一款功能强大的AWS API网关管理与IP地址轮换代理工具

关于FireProx FireProx是一款功能强大的AWS API网关安全管理工具&#xff0c;该工具可以帮助广大研究人员创建实现唯一IP地址轮换的实时HTTP转发代理。 在发送网络请求或进行网络交互时&#xff0c;实现源IP地址轮换是一个非常复杂的过程&#xff0c;虽然社区中也有相关的工具…