第十四届蓝桥杯:DFS之飞机降落

这道题,由于它的数据范围是非常小的,我们可以采取暴力搜索的措施,把每种情况都枚举出来,如果有能行的情况就返回true

同时我们也要学会剪枝,如果已经确认飞机不能降落,就不要往下再展开了

cpp 复制代码
#include <iostream>
#include <vector>
#include <cstring>
const int N = 30;
using namespace std;

int st[N];
int t[N],d[N],l[N];
int n,T;
bool dfs(int pos,int end)
{
	if(pos>n)
	{
		return true;
	}
	for(int i = 1;i<=n;i++)
	{
		if(st[i]) continue;
		if(end > t[i]+d[i]) continue;
		int newend = max(end,t[i])+l[i];
		st[i] = true;
		if(dfs(pos+1,newend)) return true;
		st[i] = false;
		
	}
	return false;
}
int main()
{
	cin >> T;
	while(T--)
	{
		memset(st,0,sizeof(st));
		cin >> n;
		for(int i = 1;i<=n;i++)
		{
		cin >> t[i] >> d[i] >> l[i];
     	}
	if(dfs(1,0)) cout << "YES" << endl;
	else cout << "NO" << endl;
	}
	
	
	
	
	return 0;
}
相关推荐
W23035765733 小时前
经典算法:最长上升子序列(LIS)深度解析 C++ 实现
开发语言·c++·算法
.Ashy.3 小时前
2026.4.11 蓝桥杯软件类C/C++ G组山东省赛 小记
c语言·c++·蓝桥杯
minji...4 小时前
Linux 线程同步与互斥(三) 生产者消费者模型,基于阻塞队列的生产者消费者模型的代码实现
linux·运维·服务器·开发语言·网络·c++·算法
语戚5 小时前
力扣 968. 监控二叉树 —— 贪心 & 树形 DP 双解法递归 + 非递归全解(Java 实现)
java·算法·leetcode·贪心算法·动态规划·力扣·
skywalker_115 小时前
力扣hot100-7(接雨水),8(无重复字符的最长子串)
算法·leetcode·职场和发展
bIo7lyA8v6 小时前
算法稳定性分析中的输入扰动建模的技术9
算法
CoderCodingNo6 小时前
【GESP】C++三级真题 luogu-B4499, [GESP202603 三级] 二进制回文串
数据结构·c++·算法
sinat_286945196 小时前
AI Coding 时代的 TDD:从理念到工程落地
人工智能·深度学习·算法·tdd
炽烈小老头6 小时前
【 每天学习一点算法 2026/04/12】x 的平方根
学习·算法