当前位置:   article > 正文

(第十四届蓝桥真题)飞机降落_第14届蓝桥杯飞机降落

第14届蓝桥杯飞机降落

  样例输入:

  1. 2
  2. 3
  3. 0 100 10
  4. 10 10 10
  5. 0 2 20
  6. 3
  7. 0 10 20
  8. 10 10 20
  9. 20 10 20

样例输出:

  1. YES
  2. NO

分析:这道题看了一下数据范围,就知道可以直接全排列枚举去做,对于一个正在枚举的降落顺序,如果轮到第i个飞机降落,如果当前时间没有超过飞机的最晚降落时间,就让飞机尽可能地早降落,如果当前时间飞机已经来了则直接开始降落,否则等飞机来了就降落,复杂度不会超时。

细节见代码:

  1. #include<iostream>
  2. #include<cmath>
  3. #include<queue>
  4. #include<cstdio>
  5. #include<algorithm>
  6. using namespace std;
  7. const int N=15;
  8. int t[N],d[N],l[N];
  9. int a[N];
  10. int main()
  11. {
  12. int T;
  13. cin>>T;
  14. while(T--)
  15. {
  16. int n;
  17. scanf("%d",&n);
  18. for(int i=1;i<=n;i++)
  19. scanf("%d%d%d",&t[i],&d[i],&l[i]);
  20. for(int i=1;i<=n;i++)
  21. a[i]=i;
  22. bool flag=false;
  23. do
  24. {
  25. int now=0;
  26. for(int i=1;i<=n;i++)
  27. {
  28. if(now<=t[a[i]]+d[a[i]])
  29. now=l[a[i]]+max(now,t[a[i]]);
  30. else
  31. break;
  32. if(i==n) flag=true;
  33. }
  34. if(flag) break;
  35. }while(next_permutation(a+1,a+n+1));
  36. if(flag) puts("YES");
  37. else puts("NO");
  38. }
  39. return 0;
  40. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/515922
推荐阅读
相关标签
  

闽ICP备14008679号