当前位置: 首页 > news >正文

DFS飞机降落

问题描述

NN 架飞机准备降落到某个只有一条跑道的机场。其中第 ii 架飞机在 TiTi​ 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 DiDi​ 个单位时间,即它最早可以于 TiTi​ 时刻开始降落,最晚可以于 Ti+DiTi​+Di​ 时刻开始降落。降落过程需要 LiLi​ 个单位时间。

一架飞机降落完毕时,另一架飞机可以立即在同一时刻开始降落,但是不能在前一架飞机完成降落前开始降落。

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

输入格式

输入包含多组数据。

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

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

以下 NN 行,每行包含三个整数:TiTi​,DiDi​ 和 LiLi​。

输出格式

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

代码

递归调用 dfs 函数,处理下一个元素,更新 last 为 max(p[i].t, last) + p[i].l

如果递归调用返回 false,说明当前选择不可行,将元素 i 标记为未访问
            st[i] = false;
#include<bits/stdc++.h>
using namespace std;

#define int long long

const int N = 14;
int n;

struct Plane
{
	int t, d, l;
}p[N];

 
bool st[N];

bool dfs(int u, int last){
  if(u == n) return true;

  for(int i = 0; i < n; i ++ ) {
    if(!st[i] && p[i].t+p[i].d >= last) {
      st[i] = true;

      if(dfs(u+1, max(p[i].t, last)+p[i].l)) return true;
    
      st[i] = false;
    }
  }


  return false;
}

signed main()
{
    int T;
    cin >> T;
    while(T--){
      cin >> n;

      for(int i = 0; i < n; i ++ ) {
        cin >> p[i].t >> p[i].d >> p[i].l;
      }
		
		memset(st,0,sizeof(st));

		if(dfs(0,0)) cout << "YES"<<endl;
		else cout << "NO" << endl;
    
  }
	
    return 0;
}

http://www.dtcms.com/a/98593.html

相关文章:

  • 《HelloGitHub》第 108 期
  • AUTOSAR_StbM_详解
  • 浅谈Thread类及常见方法与线程的状态(多线程编程篇2)
  • fetch`的语法规则及常见用法
  • Document对象的常用属性和方法
  • 蓝桥杯[每日一题] 真题:管道(java版)
  • tryhackme——Windows Local Persistence
  • std::reference_wrapper 和 std::function的详细介绍
  • MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part13
  • 【QT】QT样式设计
  • openwrt24.10.0版本上安装istoreOS的屏幕监控插件
  • CentOS 安装 zip
  • 零基础入门多媒体音频(4)-GENIVIProjectAudioManager总览
  • gdb 调试mysql
  • vue3源码分析 -- watch
  • MVC 文件夹:架构之美,开发之魂
  • 从零开始跑通3DGS教程:(三)坐标系与尺度编辑(CloudCompare)
  • HFSS 使用入门
  • 【最后203篇系列】025 FastAPI+Celery
  • AI大模型、机器学习以及AI Agent开源社区和博客
  • 数据结构与算法——顺序表之手撕OJ题
  • 在 Vue 项目中,登录成功后是否存储 token 与用户信息到本地
  • 【NTN 卫星通信】Starlink 星链卫星有多大?详解尺寸与技术参数
  • 深度学习Note.5(机器学习.6)
  • 神经网络检测题
  • FreeRTOS与RT-Thread内存分配对比分析
  • 多线程—JUC(java.util.concurrent)
  • 一个流程图的后续
  • DeepSeek接入飞书多维表格,效率起飞!
  • 【源码阅读/Vue Flask前后端】简历数据查询功能