每日一题-dfs

P9241 蓝桥杯 2023 省 B 飞机降落

https://www.luogu.com.cn/problem/P9241

这道题的难点就是顺序问题,那么可以设置一个标记数组,访问没有标记过的。同时控制进程和时间

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N=15;
int book[N],n,T;
struct plane{
    int t,d,l;
}a[N];
bool dfs(int dep,int t){
    if(dep==n){
        return true;
    }
    for(int i=0;i<n;i++){
        if(book[i]||a[i].t+a[i].d<t){
            continue;
        }
        book[i]=1;
        if(dfs(dep+1,max(t,a[i].t)+a[i].l)){
            book[i]=0;//成功时返回前回溯
            return true;//找到可行方案,立即返回
        }
        book[i]=0;//失败时回溯
    }
    return false;
}
int main(){
    cin>>T;
    while(T--){
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>a[i].t>>a[i].d>>a[i].l;
        }
        memset(book,0,sizeof book);
        if(dfs(0,0)) cout<<"YES"<<endl;
        else cout<<"NO"<<endl;
    }
    return 0;
}
相关推荐
longlongzihan几秒前
LeetCode 25. K 个一组翻转链表 (迭代+分组反转法)
算法·leetcode·链表
xuxigifxfh1 分钟前
牛客:BISHI8 大整数哈希
java·算法·哈希算法
涉密IT资质笔记4 分钟前
涉密资质投入产出分析模型:时间成本、四块成本构成与 ROI 决策框架
java·开发语言·算法
木井巳6 分钟前
【BFS 解决拓扑排序】火星词典
java·算法·leetcode·广度优先·宽度优先·图搜索算法
北风toto17 分钟前
KMP 算法详解:从暴力匹配到 O(n+m) 的字符串搜索
java·开发语言·算法
林澈在路上24 分钟前
哪个写歌软件可以用自己声音?MELO音乐详解
人工智能·python·算法
爱读书的小胖25 分钟前
Codewars Sum of a Sequence Hard Core Version C 解题分析
c语言·数据结构·算法
不会就选b25 分钟前
算法日常・每日刷题--<动态规划>24
算法·动态规划
Shaoshing36 分钟前
二分模板(左右查询)
java·算法·二分
蒲公英eric1 小时前
线性回归与正则化:从最小二乘到岭回归、LASSO
人工智能·算法·数学建模·线性回归·岭回归·最小二乘·lasso