飞机降落(蓝桥杯)

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

题目描述

N N N 架飞机准备降落到某个只有一条跑道的机场。其中第 i i i 架飞机在 T i T_{i} Ti 时刻到达机场上空,到达时它的剩余油料还可以继续盘旋 D i D_{i} Di 个单位时间,即它最早可以于 T i T_{i} Ti 时刻开始降落,最晩可以于 T i + D i T_{i}+D_{i} Ti+Di

### 关于2023年蓝桥杯竞赛中的飞机降落Python编程题目 针对2023年蓝桥杯竞赛中涉及的飞机降落问题,在给定条件下,解决此类问题的关键在于合理安排每架飞机降落时间以满足特定约束条件。具体来说,对于每一架飞机而言,其最晚开始降落的时间应当不早于前一架飞机完成降落的时间[^3]。 为了实现这一目标,可以采用贪心算法来处理这个问题。通过遍历所有待降落在机场上的飞机,并按照它们到达时间和所需跑道占用时间来进行排序,从而找到一种最优解法使得所有飞机都能安全着陆而不会发生冲突。 下面是一个简单的Python函数示例用于模拟上述逻辑: ```python def can_land_planes(q): """ 判断是否可以在规定时间内让所有的飞机都成功降落 参数: q (list of tuples): 每个元组包含两个整数(a,b),分别表示第i架飞机最早可开始降落时刻以及降落过程持续秒数 返回: bool: 如果能够使所有飞机顺利降落则返回True;反之,则False """ # 初始化最后一架已知能正常降落结束时间为负无穷大 last = float('-inf') # 对输入数据按最早可能起飞时间升序排列 sorted_q = sorted(q) for plane in sorted_q: a, b = plane if not (a + b >= last): return False else: last = a+b return True if __name__ == "__main__": planes_schedule = [(8, 5), (9, 7), (14, 3)] # 示例航班计划表 result = "YES" if can_land_planes(planes_schedule) else "NO" print(result) ``` 此代码片段定义了一个`can_land_planes()` 函数,该函数接收一个列表作为参数,其中每个元素都是由一对整数组成的元组 `(a, b)` ,代表某次飞行任务对应的最小允许起始降落时间和预计耗时。接着对这些记录依据 `a` 进行从小到大的排序操作并逐一检验是否存在可行方案能够让全部班机依次平稳触地而不违反既定规则。最后输出结果为字符串 `"YES"` 或者 `"NO"` 来表明是否有合法路径可供选择。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

命运从未公平

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值