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

织梦做企业网站教程北京知名网站推广

织梦做企业网站教程,北京知名网站推广,贵州城乡住房建设网站,天津塘沽网站建设公司解题思路 这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列,我们可以使用深度优先搜索(DFS)的方法,尝试所有可能的降落顺序。 首先,我们需要理解题目中的条件。每架…

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

解题思路

这道题目要求我们判断给定的飞机是否都能在它们的油料耗尽之前降落。为了寻找是否存在合法的降落序列,我们可以使用深度优先搜索(DFS)的方法,尝试所有可能的降落顺序。

首先,我们需要理解题目中的条件。每架飞机在 T i T_i Ti 时刻到达机场上空,剩余油料可以维持 D i D_i Di 个单位时间,降落需要 L i L_i Li 个单位时间。这意味着每架飞机可以在 T i T_i Ti T i + D i T_i+D_i Ti+Di 的时间段内开始降落。

然后,我们可以按照以下步骤来实现 DFS:

  1. 首先,我们初始化一个布尔数组 st[] 来记录每架飞机是否已经降落。
  2. 然后,我们对每架飞机尝试进行降落。这里的 “尝试” 意味着我们需要检查该飞机是否可以在当前的时间内开始降落,即它的开始降落时间是否在 T i T_i Ti T i + D i T_i+D_i Ti+Di 的时间段内。如果可以,我们就让它降落,并把 st[i] 设置为 true
  3. 在一架飞机降落之后,我们递归地对剩下的飞机进行尝试。这一步就是 DFS 的主要部分,我们需要在所有的可能的降落序列中进行搜索。
  4. 如果在某一步我们发现当前的飞机无法在当前的时间内开始降落,我们就返回 false,并在上一层中尝试下一架飞机。
  5. 如果所有的飞机都已经降落,我们就返回 true
  6. 最后,我们对所有飞机进行尝试。如果存在至少一个可以让所有飞机都降落的序列,我们就输出 YES,否则输出 NO

通过以上步骤,我们可以找出是否存在一个合法的降落序列,使得所有的飞机都能在它们的油料耗尽之前降落。

AC_Code

  • C++
#include <iostream>
#include <cstring>
#include <algorithm>using namespace std;const int N = 15;int n;
int a[N], b[N], c[N];
bool st[N];bool dfs(int u, int last, int cnt)
{if (b[u] < last)return false;if (cnt == n)return true;for (int i = 0; i < n; ++ i )if (!st[i]){st[i] = true;if (dfs(i, max(a[u], last) + c[u], cnt + 1))return true;st[i] = false;}return false;
}int main()
{int T;cin >> T;while (T -- ){memset(st, 0, sizeof st);cin >> n;for (int i = 0; i < n; ++ i )cin >> a[i] >> b[i] >> c[i], b[i] += a[i];bool flag = false;for (int i = 0; i < n; ++ i ){st[i] = true;if (dfs(i, 0, 1)){flag = true;break;}st[i] = false;}cout << (flag? "YES": "NO") << endl;}return 0;
}
  • Java
import java.util.*;public class Main {static final int N = 15;static int n;static int[] a = new int[N], b = new int[N], c = new int[N];static boolean[] st = new boolean[N];static boolean dfs(int u, int last, int cnt) {if (b[u] < last) {return false;}if (cnt == n) {return true;}for (int i = 0; i < n; ++i) {if (!st[i]) {st[i] = true;if (dfs(i, Math.max(a[u], last) + c[u], cnt + 1)) {return true;}st[i] = false;}}return false;}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);int T = scanner.nextInt();while (T-- > 0) {Arrays.fill(st, false);n = scanner.nextInt();for (int i = 0; i < n; ++i) {a[i] = scanner.nextInt();b[i] = scanner.nextInt() + a[i];c[i] = scanner.nextInt();}boolean flag = false;for (int i = 0; i < n; ++i) {st[i] = true;if (dfs(i, 0, 1)) {flag = true;break;}st[i] = false;}System.out.println(flag ? "YES" : "NO");}scanner.close();}
}
  • Python
N = 15
a, b, c = [0]*N, [0]*N, [0]*N
st = [False]*Ndef dfs(u, last, cnt):if b[u] < last:return Falseif cnt == n:return Truefor i in range(n):if not st[i]:st[i] = Trueif dfs(i, max(a[u], last) + c[u], cnt + 1):return Truest[i] = Falsereturn FalseT = int(input().strip())
for _ in range(T):st = [False]*Nn = int(input().strip())for i in range(n):a[i], b[i], c[i] = map(int, input().strip().split())b[i] += a[i]flag = Falsefor i in range(n):st[i] = Trueif dfs(i, 0, 1):flag = Truebreakst[i] = Falseprint("YES" if flag else "NO")

【在线测评】

在这里插入图片描述

http://www.yayakq.cn/news/582160/

相关文章:

  • 网站建设时间表为学校建设网站
  • 重庆云端设计网站建设微信服务号绑定网站
  • 重庆网站建设哪里比较好呢怎么投诉网络平台
  • 咋样做网站昆网站在哪里
  • r6300v2做网站免费的外网服务器
  • 关于做网站的总结此网站域名即将过期
  • 男女做暧暧观看免费网站python基础教程雪峰
  • 企业网站上的二维码怎么获得一站式营销推广平台
  • 陕西建新建设有限公司网站google关键词优化排名
  • 免费网站开发软件汕头网站搜索引擎优化
  • 做宣传图片用什么网站高邑做网站
  • 大良营销网站建设教程建设小说网站用什么软件
  • php网站怎么做301跳转网站开发合同违约责任
  • 网站站群建设方案网站建设有什么证
  • 网站空间和云主机做自己的网站需要会编程吗
  • 招聘网站建设销售wordpress 学术主题
  • 用七牛做网站ps快速做网站
  • 凤山网站seo汕头网站制作流程
  • 渭南市建网站专题网站建设总要求
  • 网站宽屏版萍乡市建设局网站王丽
  • 网站首页没被收录网站建设付款分期付款协议
  • 网站设计总结开源建站工具
  • 厦门手机网站设计公司引擎优化
  • 软件定制为什么不给源码热狗网站排名优化外包
  • 网站页面布局图片百度指数与百度搜索量
  • 要解析做邮箱以及网站百度推广代理商返点
  • 晋中企业网站建设公司重庆十大装饰公司排名
  • 鞍山专业做网站公司广州网站制作开发公司
  • 沈阳做企业网站的公司建筑招投标网官网
  • 泰安网站seo推广室内设计学校比较好