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

蓝桥杯B组C++省赛——飞机降落(DFS)

题目连接:https://www.lanqiao.cn/problems/3511/learning/

思路:由于数据范围很小,所有选择用DFS枚举所有飞机的所有的降落顺序,看哪个顺序可以让所有飞机顺利降落,有的话就算成功方案,输出了“YES”。

代码如下:
//飞机降落: 暴力枚举DFS
#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N = 10 + 20;struct plane{int t, d, l;
}p[N];bool st[N];//判断当前飞机是否已经降落int n;//飞机个数。//u表示已经有U架飞机成功降落了。
//time表示当前的时间,前一架飞机落地的时间。
bool dfs(int u, int time)
{if(u >= n)return true;//考虑第(u + 1)架飞机谁落。for(int i = 0; i < n; i ++){if(!st[i]){st[i] = true;if(p[i].t + p[i].d < time){//回溯,回溯到DFS之前的状态。st[i] = false;return false;}int t = max(time, p[i].t) + p[i].l;if(dfs(u + 1, t))return true;//回溯,回溯到DFS之前的状态。st[i] = false;}}return false;
}void solve()
{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;elsecout << "NO" << endl;for(int i = 0; i < n; i ++)st[i] = false;
}	signed main()
{ios::sync_with_stdio(0);cin.tie(0);int t = 1;cin >> t;while(t--)solve();
}

这里可能大家会有个小问题,if(dfs(u + 1, t))这一步为什么要判断,为什么直接dfs(u+1,t)不对?

答:因为如果不判断的话,当u>num时(也就是找到飞机能正常降落的步骤),返回return 并不是直接退出,而是到了num-1层,然后相当于是递归回去,最后到了第0层,因为没有判断,所以直接接着往下走,返回false。也就是说,不加判断整个程序返回的是第0层的结果false。而我们之前一般的dfs之所以不加判断是因为在n>num的时候直接把结果输出来了,就算递归回去也不影响。

http://www.lryc.cn/news/332234.html

相关文章:

  • Java 中的 Map集合
  • 基于springboot大学生兼职平台管理系统(完整源码+数据库)
  • C#学生信息管理系统
  • 双机 Cartogtapher 建图文件配置
  • VMware提示 该虚拟机似乎正在使用中,如何解决?
  • 阿里云短信服务业务
  • ElasticSearch的DSL查询
  • 每天定时杀spark进程
  • win10 安装kubectl,配置config连接k8s集群
  • Calico IPIP和BGP TOR的数据包走向
  • 静态成员主要用于提供与类本身相关的功能或数据,有什么应用场景
  • 在线考试|基于Springboot的在线考试管理系统设计与实现(源码+数据库+文档)
  • C语言-----数据在内存中的存储(1)
  • Ribbon有哪些负载均衡策略
  • websocket多级nginx代理
  • 【python从入门到精通】-- 第四战:语句汇总
  • 【NC50937】货仓选址
  • Nginx配置使用笔记
  • GridLayoutManager 中的一些坑
  • 算法实验二 矩阵最小路径和 LIS
  • Apache Paimon实时数据糊介绍
  • 计算机网络:数据链路层 - 可靠传输协议
  • 苍穹外卖07(缓存菜品,SpringCache,缓存套餐,添加购物车菜品和套餐多下单,查看购物车,清除购物车,删除购物车中一个商品)
  • C语言第三十八弹---编译和链接
  • 无人售货奶柜:开启便捷生活的新篇章
  • STM32为什么不能跑Linux?
  • Dubbo 3.x源码(18)—Dubbo服务引用源码(1)
  • 设计模式:工厂模式和抽象工厂模式的区别
  • python面试题(36~50)
  • Vue 样式技巧总结与整理[中级局]