飞机降落蓝桥杯[2023蓝桥省赛B组]

2023蓝桥省赛B组 B题 飞机降落 题解

标准深搜板子题,难度不大

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define MAX 10
struct node{
    int t,d,l;//t:飞机到达时间 d:飞机最大盘旋时间 l:飞机降落所需时间
    bool v;//标记此架飞机是否被搜索过 用于剪枝
};
node p[MAX];
int t,n;//t:样例数 n:飞机数
bool dfs(int k,int time){//k:当前搜索到的飞机架数 time:上一架飞机实际降落时间
    if(k==n) return 1;
    for(int i=0;i<n;i++){
        if(!p[i].v&&p[i].t+p[i].d>=time){
            /*剪枝:1.进入搜索的飞机必须是未被搜索过的飞机
            2.飞机到达时间与最大盘旋时间之和必须不早于上一架飞机实际降落时间
            */
            p[i].v=1;
            if(dfs(k+1,max(time,p[i].t)+p[i].l)) return 1;//若向下递归所有飞机均返回1 此处才能返回1
            p[i].v=0;//回溯
        }
    }
    return 0;//若向下递归时只要有1架飞机不符合要求 则返回0
}
int main(){
    cin>>t;
    while(t--){
        memset(p,0,sizeof p);
        cin>>n;
        for(int i=0;i<n;i++) cin>>p[i].t>>p[i].d>>p[i].l;
        if(dfs(0,0)) cout<<"YES"<<endl;//从第0架飞机开始搜索
        else cout<<"NO"<<endl;
    }
    return 0;
}
相关推荐
灵感__idea12 小时前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
Wect1 天前
LeetCode 130. 被围绕的区域:两种解法详解(BFS/DFS)
前端·算法·typescript
NAGNIP1 天前
一文搞懂深度学习中的通用逼近定理!
人工智能·算法·面试
颜酱2 天前
单调栈:从模板到实战
javascript·后端·算法
CoovallyAIHub2 天前
仿生学突破:SILD模型如何让无人机在电力线迷宫中发现“隐形威胁”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
从春晚机器人到零样本革命:YOLO26-Pose姿态估计实战指南
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
Le-DETR:省80%预训练数据,这个实时检测Transformer刷新SOTA|Georgia Tech & 北交大
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
强化学习凭什么比监督学习更聪明?RL的“聪明”并非来自算法,而是因为它学会了“挑食”
深度学习·算法·计算机视觉
CoovallyAIHub2 天前
YOLO-IOD深度解析:打破实时增量目标检测的三重知识冲突
深度学习·算法·计算机视觉
祈安_2 天前
C语言内存函数
c语言·后端