#include <bits/stdc++.h> #define int long long //(有超时风险) #define PII pair<int,int> #define endl '\n' using namespace std; const int N=2e5+10,M=1e3+10; int flag=0; int n; int t[N],d[N],l[N]; bool st[N]; //飞机数量,上一架飞机降落时间 void dfs(int cnt,int sum) { if(cnt>n) { return ; } if(cnt==n) { flag=1; return ; } //是顺序类型的枚举,因为哪个飞机开始降落是有影响的. for(int i=1;i<=n;i++) { if(!st[i]&&t[i]+d[i]>=sum) { st[i]=true; dfs(cnt+1,max(t[i]+l[i],sum+l[i])); st[i]=false; } } return ; } signed main() { std::ios::sync_with_stdio(false); cin.tie(0);cout.tie(0); int _t;cin>>_t; while(_t--) { memset(st,false,sizeof st); cin>>n; for(int i=1;i<=n;i++) cin>>t[i]>>d[i]>>l[i]; dfs(0,0); if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; flag=0; } return 0; }
P9241 [蓝桥杯 2023 省 B] 飞机降落
最新推荐文章于 2024-05-18 15:23:54 发布